打印JSON對象時,如果內部鍵值爲null,則該鍵不會打印出來,too young too naive

幾年前博主在GitHub提的一個問題,記錄下!

打印JSON對象時,如果內部鍵值爲null,則該鍵不會打印出來
JSONObject{“a”:1,“b”:"",“c”:null,“d”:“loongshawn”}
打印出來JSONObject{“a”:1,“b”:"",“d”:“loongshawn”},作如何解釋…

問題來源:https://github.com/alibaba/fastjson/issues/988
在這裏插入圖片描述
問題解答:https://github.com/alibaba/fastjson/wiki/WriteNull_cn

輸入輸出空值
在fastjson中,缺省是不輸出空值的。無論Map中的null和對象屬性中的null,序列化的時候都會被忽略不輸出,這樣會減少產生文本的大小。但如果需要輸出空值怎麼做呢?

使用SerializerFeature.WriteMapNullValue

Model obj = ...;
JSON.toJSONString(obj, SerializerFeature.WriteMapNullValue);

空值特別處理

SerializerFeature 描述
WriteNullListAsEmpty 將Collection類型字段的字段空值輸出爲[]
WriteNullStringAsEmpty 將字符串類型字段的空值輸出爲空字符串 “”
WriteNullNumberAsZero 將數值類型字段的空值輸出爲0
WriteNullBooleanAsFalse 將Boolean類型字段的空值輸出爲false
class Model {
      public List<Objec> items;
}

Model obj = ....;

String text = JSON.toJSONString(obj, SerializerFeature.WriteMapNullValue, SerializerFeature.WriteNullListAsEmpty);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章