English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
例を示す
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 属性が表示されない解決策」として、編集者が皆さんに提供する全ての内容がここにまとめられています。皆さんに参考になれば幸いですし、呐喊教程へのご支援もお願いします。