@[toc]
成都創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站建設(shè)、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的賓縣網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!當(dāng) JavaeBean 中某個(gè)屬性值為 null 時(shí),轉(zhuǎn)換為 JSONObject 對(duì)象或者 json 字符串時(shí),該屬性值被忽略。
如何讓不管值是否為 null,轉(zhuǎn)化后該屬性還存在,只是值為 null。
class St {
private String sid;
private String sname;
private String ssex;
public String getSid() {
return sid;
}
public void setSid(String sid) {
this.sid = sid;
}
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
public String getSsex() {
return ssex;
}
public void setSsex(String ssex) {
this.ssex = ssex;
}
public static void main(String[] args) {
St st = new St();
st.setSid("111");
st.setSname("aaa");
JSONObject jsonSt = JSONObject.parseObject(JSON.toJSONString(st));
System.out.println(jsonSt);
}
}
輸出結(jié)果:{“sname”:"aaa","sid":111}
ssex屬性沒了!
在轉(zhuǎn)化的方法中添加這個(gè)屬性:SerializerFeature.WriteMapNullValue。
public static void main(String[] args) {
St st = new St();
st.setSid("111");
st.setSname("aaa");
JSONObject jsonSt = JSONObject.parseObject(JSON.toJSONString(st, SerializerFeature.WriteMapNullValue));
System.out.println(JSON.toJSONString(jsonSt, SerializerFeature.WriteMapNullValue));
}
輸出結(jié)果:{"sname":"aaa","sid":111,"ssex":null}
上文中用到的 JSON.toJSONString(Object object, SerializerFeature… features) 方法 SerializerFeature 的屬性值還有如下 SerializerFeature屬性 | 含義 |
---|---|
UseSingleQuotes | 使用單引號(hào)而不是雙引號(hào),默認(rèn)為false |
WriteMapNullValue | 使用輸出為null的參數(shù),默認(rèn)為false |
當(dāng)value為null時(shí),JSONObject.toJSONString()返回的json字符串將不展示對(duì)應(yīng)的key,這明顯不是我們想要的,所以可以使用
SONObject.toJSONString(Object object, SerializerFeature... features) 來(lái)獲取我們想要的值,SerializerFeature屬性對(duì)應(yīng)的值和含義如下:
名稱 | 含義 |
---|---|
QuoteFieldNames | 輸出key時(shí)是否使用雙引號(hào),默認(rèn)為true |
UseSingleQuotes | 使用單引號(hào)而不是雙引號(hào),默認(rèn)為false |
WriteMapNullValue | 是否輸出值為null的字段,默認(rèn)為false |
WriteEnumUsingToString | Enum輸出name()或者original,默認(rèn)為false |
UseISO8601DateFormat | Date使用ISO8601格式輸出,默認(rèn)為false |
WriteNullListAsEmpty | List字段如果為null,輸出為[],而非null |
WriteNullStringAsEmpty | 字符類型字段如果為null,輸出為”“,而非null |
WriteNullNumberAsZero | 數(shù)值字段如果為null,輸出為0,而非null |
WriteNullBooleanAsFalse | Boolean字段如果為null,輸出為false,而非null |
SkipTransientField | 如果是true,類中的Get方法對(duì)應(yīng)的Field是transient,序列化時(shí)將會(huì)被忽略。默認(rèn)為true |
SortField | 按字段名稱排序后輸出。默認(rèn)為false |
WriteTabAsSpecial | 把\t做轉(zhuǎn)義輸出,默認(rèn)為false 不推薦 |
PrettyFormat | 結(jié)果是否格式化,默認(rèn)為false |
WriteClassName | 序列化時(shí)寫入類型信息,默認(rèn)為false。反序列化是需用到 |
DisableCircularReferenceDetect | 消除對(duì)同一對(duì)象循環(huán)引用的問(wèn)題,默認(rèn)為false |
WriteSlashAsSpecial | 對(duì)斜杠’/’進(jìn)行轉(zhuǎn)義 |
BrowserCompatible | 將中文都會(huì)序列化為\uXXXX格式,字節(jié)數(shù)會(huì)多一些,但是能兼容IE6,默認(rèn)為false |
WriteDateUseDateFormat | 全局修改日期格式,默認(rèn)為false。JSON.DEFFAULT_DATE_FORMAT = “yyyy-MM-dd”;JSON.toJSONString(obj,SerializerFeature.WriteDateUseDateFormat); |
DisableCheckSpecialChar | 一個(gè)對(duì)象的字符串屬性中如果有特殊字符如雙引號(hào),將會(huì)在轉(zhuǎn)成json時(shí)帶有反斜杠轉(zhuǎn)移符。如果不需要轉(zhuǎn)義,可以使用這個(gè)屬性。默認(rèn)為false |
NotWriteRootClassName | 含義 |
BeanToArray | 將對(duì)象轉(zhuǎn)為array輸出 |
WriteNonStringKeyAsString | 含義 |
NotWriteDefaultValue | 含義 |
BrowserSecure | 含義 |
IgnoreNonFieldGetter | 含義 |
WriteEnumUsingName | 含義 |
創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國(guó)云服務(wù)器,動(dòng)態(tài)BGP最優(yōu)骨干路由自動(dòng)選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨(dú)有T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動(dòng)現(xiàn)已開啟,新人活動(dòng)云服務(wù)器買多久送多久。
網(wǎng)頁(yè)題目:FastJson轉(zhuǎn)換javaBean時(shí)null值被忽略都問(wèn)題-創(chuàng)新互聯(lián)
當(dāng)前網(wǎng)址:http://vcdvsql.cn/article32/ddpppc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)、品牌網(wǎng)站建設(shè)、建站公司、外貿(mào)建站、網(wǎng)站改版、云服務(wù)器
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容