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); 
//Ausgaberesultat:{"a":1"b":"",d:"wuzhuti.cn" 

从输出结果可以看出,null对应的key已经被过滤掉;这明显不是我们想要的结果,这时我们就需要用到fastjson的SerializerFeature序列化属性

也就是这个方法:JSONObject.toJSONString(Object object, SerializerFeature... features)

Fastjson的SerializerFeature序列化属性

QuoteFieldNames———-Ob bei der Ausgabe von Schlüsseln doppelte Anführungszeichen verwendet werden sollen, Standard ist true

WriteMapNullValue——–Ob Felder mit null-Werten ausgegeben werden sollen, Standard ist false

WriteNullNumberAsZero—-Wenn das numerische Feld null ist, wird es als 0 ausgegeben, anstatt als null

WriteNullListAsEmpty—–Wenn das List-Feld null ist, wird es als [] ausgegeben, anstatt als null

WriteNullStringAsEmpty—Wenn das Zeichenfeld null ist, wird es als "" ausgegeben, anstatt als null

WriteNullBooleanAsFalse–Wenn das Boolean-Feld null ist, wird es als false ausgegeben, anstatt als null

Code

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); 
//Ausgaberesultat:{"a":1{"b":"","c":null,"d":"wuzhuti.cn"} 

Diese Lösung, dass das Null-Attribut bei der Generierung von JSON durch fastjson nicht angezeigt wird, ist alles, was der Autor geteilt hat. Es wird hoffentlich eine Referenz für alle sein, und alle werden gebeten, die Anleitung zu unterstützen.