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