English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

fastjsonでJSONを生成する際にNull属性が表示されない解決方法

例を示す

Map < String , Object > jsonMap = new HashMap< String , Object>(); 
jsonMap.put("a",1); 
jsonMap.put("b",""); 
jsonMap.put("c",null); 
jsonMap.put("d","wuzhuti.cn"); 
String str = JSONObject.toJSONString(jsonMap); 
System.out.println(str); 
//出力結果:{"a":1,"b":"",d:"wuzhuti.cn" 

出力結果から見て、nullに対応するkeyがフィルタリングされていることがわかります;これは私たちが望む結果ではありません。その場合、fastjsonのSerializerFeatureシリアライズ属性を使用する必要があります

つまりこのメソッド:JSONObject.toJSONString(Object object, SerializerFeature... features)

FastjsonのSerializerFeatureシリアライズ属性

QuoteFieldNames———-キーを出力する際にダブルクォートを使用するかどうか、デフォルトはtrue

WriteMapNullValue——–null値のフィールドを出力するかどうか、デフォルトはfalse

WriteNullNumberAsZero—-数値フィールドがnullの場合、0として出力され、nullではありません

WriteNullListAsEmpty—–Listフィールドがnullの場合、空リスト[]として出力され、nullではありません

WriteNullStringAsEmpty—文字列タイプのフィールドがnullの場合、空文字列""として出力され、nullではありません

WriteNullBooleanAsFalse–Booleanフィールドがnullの場合、falseとして出力され、nullではありません

コード

Map < String , Object > jsonMap = new HashMap< String , Object>(); 
jsonMap.put("a",1); 
jsonMap.put("b",""); 
jsonMap.put("c",null); 
jsonMap.put("d","wuzhuti.cn"); 
String str = JSONObject.toJSONString(jsonMap,SerializerFeature.WriteMapNullValue); 
System.out.println(str); 
//出力結果:{"a":1{"b":"","c":null,"d":"wuzhuti.cn"} 

以上の記事「fastjson が JSON を生成する際に Null 属性が表示されない解決策」として、編集者が皆さんに提供する全ての内容がここにまとめられています。皆さんに参考になれば幸いですし、呐喊教程へのご支援もお願いします。

おすすめ