您好,登錄后才能下訂單哦!
項目中原先使用gson解析數(shù)據(jù),后來由于各種原因換成了fastjson;那么問題來了,如果你定義的實體對象的屬性方法和屬性名不一致,那么fastjson解析的數(shù)據(jù)始終為空,而gson始終可以解析。
gson解析使用的是屬性匹配法,無論你屬性方法定義成什么樣。
fastjson使用的屬性方法匹配法,即你必須將要獲取的數(shù)據(jù)的屬性字段和方法字段定義成getXX()才個可以。
eg:private String code;public String getCode(){ return code; }
有一種情況,后臺兩個接口,拿去相同的數(shù)據(jù),但是返回的個別字段不一樣,后臺又不愿意改,你前端又不想在重新寫一個類,這怎么辦呢?
接口一的數(shù)據(jù):
{
"title":"接口一",
"url":"http://www.baidu.com"
}
接口二的數(shù)據(jù):
{
"title":"接口一",
"urlTmp":"http://www.baidu.com"
}
使用gson很方便:只要定義一個抽象類,兩個接口實現(xiàn)不同的字段,就ok了
abstarct class C{
private String title;
public abstarct String getUrl();
}
class A extends C{
//只要實現(xiàn)抽象方法就好
private String url;
public String getUrl(){ return url;}
}
class B extends C{
private String urlTmp;
public String getUrl(){ return urlTmp;}
}
而fastjson,就解析不了;但可以繞過,采用Map對象去解析,這就比較麻煩了
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。