1
2
3
4
5
6
7
8
9
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);
//輸出結果:
從輸出結果可以看出,null對應的key已經被過濾掉;這明顯不是我們想要的結果,這時我們就需要用到fastjson的serializerfeature序列化屬性
也就是這個方法:jsonobject.tojsonstring(object object, serializerfeature... features)
1quotefieldnames———-輸出key時是否使用雙引號,預設為true
writemapnullvalue——–是否輸出值為null的字段,預設為false
writenullnumberaszero—-數值字段如果為null,輸出為0,而非null
writenulllistasempty—–list欄位如果為null,輸出為,而非null
writenullstringasempty—字元型別字段如果為null,輸出為」「,而非null
writenullbooleanasfalse–boolean欄位如果為null,輸出為false,而非null
2
3
4
5
6
7
8
9
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);
//輸出結果:
李說:因為fastjson會自動遮蔽掉值為null的字段,但是很多時候,我們是需要這個欄位的。我們可以將字串裡面的null全部替換為「」,然後再轉為json物件,這樣就不會遮蔽掉為空的字段了。
同理,我們也可以將所有的null替換我0等。
1
resultjsonstr = resultjsonstr.replaceall(
"null"
,
"\"\""
);
fastJson輸出json時避免 ref
場景 新手小白在開發中使用fastjson列印返回結果時出現 ref情況。場景問題描述 對現有介面新增了分頁功能,因為分頁功能返回前端的是固定模板,返回的陣列資料欄位名必須為resultlist,考慮到前端可能沒上線,後台新增get方法,兩種方式相容 tostring callsuper true ...
fastjson解析json資料
fastjson為阿里巴巴推出來的對於解析的字段首字母是大寫的,容易出問題 import j a.util.arraylist import j a.util.list import com.alibaba.fastjson.json public class json fastjson stude...
fastJson順序遍歷JSON欄位
fastjson在把json格式的字串轉換成jsonobject的時候,使用的是hashmap,所以排序規則是根據hash值排序的,如果想要按照字串順序遍歷json屬性,需要在轉換的時候指定使用linkedhashmap代替hashmap。public static void main string...