使用google的Gson库和alibaba的Fastjson库解析json数据的区别
项目中原先使用gson解析数据,后来由于各种原因换成了fastjson;那么问题来了,如果你定义的实体对象的属性方法和属性名不一致,那么fastjson解析的数据始终为空,而gson始终可以解析。
原理:
gson解析使用的是属性匹配法,无论你属性方法定义成什么样。fastjson使用的属性方法匹配法,即你必须将要获取的数据的属性字段和方法字段定义成getXX()才个可以。 eg:private String code;public String getCode(){ return code; }
利弊
有一种情况,后台两个接口,拿去相同的数据,但是返回的个别字段不一样,后台又不愿意改,你前端又不想在重新写一个类,这怎么办呢?接口一的数据:{"title":"接口一","url":"http://www.baidu.com"}接口二的数据:{"title":"接口一","urlTmp":"http://www.baidu.com"}使用gson很方便:只要定义一个抽象类,两个接口实现不同的字段,就ok了abstarct class C{private String title;public abstarct String getUrl();}class A extends C{//只要实现抽象方法就好private String url;public String getUrl(){ return url;}}class B extends C{private String urlTmp;public String getUrl(){ return urlTmp;}}而fastjson,就解析不了;但可以绕过,采用Map对象去解析,这就比较麻烦了
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。