第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

為毛fastjson字段為null時(shí)不輸出空字符串?

為毛fastjson字段為null時(shí)不輸出空字符串?

慕勒3428872 2019-03-14 10:15:21
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);  //輸出結(jié)果:{"a":1,"b":"",d:"wuzhuti.cn"}  從輸出結(jié)果可以看出,null對(duì)應(yīng)的key已經(jīng)被過(guò)濾掉;這明顯不是我們想要的結(jié)果,這時(shí)我們就需要用到fastjson的SerializerFeature序列化屬性也就是這個(gè)方法:JSONObject.toJSONString(Object object, SerializerFeature... features)SerializerFeature有用的一些枚舉值QuoteFieldNames———-輸出key時(shí)是否使用雙引號(hào),默認(rèn)為true WriteMapNullValue——–是否輸出值為null的字段,默認(rèn)為false WriteNullNumberAsZero—-數(shù)值字段如果為null,輸出為0,而非null WriteNullListAsEmpty—–List字段如果為null,輸出為[],而非null WriteNullStringAsEmpty—字符類(lèi)型字段如果為null,輸出為”“,而非null WriteNullBooleanAsFalse–Boolean字段如果為null,輸出為false,而非null現(xiàn)在加上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);  //輸出結(jié)果:{"a":1,"b":"","c":null,"d":"wuzhuti.cn"}  但是,如果把WriteNullStringAsEmpty也加進(jìn)去,為毛不起作用?!????String str = JSONObject.toJSONString(jsonMap,SerializerFeature.WriteMapNullValue,SerializerFeature.WriteNullStringAsEmpty);  System.out.println(str);  //輸出結(jié)果:{"a":1,"b":"","c":null,"d":"wuzhuti.cn"}  目前的解決辦法是加一個(gè)過(guò)濾器private ValueFilter filter = new ValueFilter() {    @Override    public Object process(Object obj, String s, Object v) {    if(v==null)        return "";    return v;    }};JSON.toJSONString(jsonMap, filter)不過(guò),心里不爽,為毛不起作用???SerializerFeature.WriteNullStringAsEmptyfastjson github: https://github.com/alibaba/fastjson
查看完整描述

2 回答

?
交互式愛(ài)情

TA貢獻(xiàn)1712條經(jīng)驗(yàn) 獲得超3個(gè)贊

你列舉的大部分SerializerFeature主要是針對(duì)Object對(duì)象序列化轉(zhuǎn)換時(shí)的情況(這個(gè)時(shí)候才能判斷參數(shù)的類(lèi)型),而在Map中,你放進(jìn)入了null就是null,進(jìn)行序列化時(shí)已經(jīng)沒(méi)法判斷它原來(lái)的類(lèi)型了,所以并沒(méi)有起作用。要使用SerializerFeature里相關(guān)null的參數(shù),應(yīng)該傳入對(duì)象進(jìn)行序列化。


查看完整回答
反對(duì) 回復(fù) 2019-04-16
  • 2 回答
  • 0 關(guān)注
  • 2573 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)