FastJson簡介 fastjson是由alibaba開源的一套json處理器。 與其餘json處理器(如Gson,Jackson等)和其餘的Java對象序列化反序列化方式相比,有比較明顯的性能優點
JSON.toJSONString
居然也有坑今天,在對對象轉成JsonString的時候,對象有三個屬性,其中兩個有內容,一個爲 null
java
踩坑實例
這裏箭頭指向的位置,由於 sent-1
中的 value爲空
,因此並未打印出來。json
第二個使用:性能
JSON.toJSONString(map, SerializerFeature.WriteMapNullValue)
指定序列化方式就打印出來了。spa
而不是默認被忽略掉
⭐System.out.println(JSON.toJSONString(message, SerializerFeature.WriteNullStringAsEmpty)); System.out.println(JSON.toJSONString(message,SerializerFeature.WriteMapNullValue)); {"data":null,"msg":" lankerens.com"} {"data":null,"msg":" lankerens.com"}
SerializerFeature.WriteMapNullValue
是否輸出值爲 null 的字段, 默認爲falsecode
也就是說有null時會輸出而不是忽略(默認策略是忽略,因此看不到爲null的字段)對象
SerializerFeature.WriteNullStringAsEmpty
字符類型字段若是爲null,輸出爲 」「 , 而非nullrem
注意是字段是字段是字段
(即 屬性 ),而不是 json.put("key",null),因此用它時,字段爲null的能夠轉換爲空字符串。字符串
若是讓輸出的json中全部爲null的字符串都變成空字符串,最簡單的作法就是加一個值過濾器,這樣就避免了有的字段爲null,有的字段爲空字符的現象。it
例
String a = null; System.out.println(JSON.toJSONString(a, SerializerFeature.WriteNullStringAsEmpty)); {"a":""} / 而不是 {"a":null}