Fastjson生成json時Null屬性不顯示

2021-09-20 19:37:58 字數 2002 閱讀 7961

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)

quotefieldnames———-輸出key時是否使用雙引號,預設為true 

writemapnullvalue——–是否輸出值為null的字段,預設為false 

writenullnumberaszero—-數值字段如果為null,輸出為0,而非null 

writenulllistasempty—–list欄位如果為null,輸出為,而非null 

writenullstringasempty—字元型別字段如果為null,輸出為」「,而非null 

writenullbooleanasfalse–boolean欄位如果為null,輸出為false,而非null

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,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...