上次把原生json替換成了fastjson,發生很多地方不相容,對這個也做了一些總結:
1、對於沒有賦值的變數處理,json-lib會根據型別給出相應初始值,而fastjson直接忽略這個字段。
解決方式:轉換時傳入兩個引數:serializerfeature.writemapnullvalue, serializerfeature.writenullstringasempty
加入writemapnullvalue後,這個欄位將不會被忽略,但是值是null,
加入writenullstringasempty,將null改成空字串。
針對數字、布林型別,還有writenullnumberaszero、writenullbooleanasfalse等。
2、對於斜槓的處理,json-lib會將「/」轉義成「\/」,而fastjson保持原樣。
解決方式:如果要讓fastjson對於斜槓進行轉義,在轉換時傳入引數:serializerfeature.writeslashasspecial。
3、fastjson的引用,當list裡有多個元素的某些屬性值相同,後面元素的屬性會引用第乙個元素的屬性,裡面的值會寫成類似$ref:$.members[0].reportto的形式,這樣可以減少資料量,但是有時候引用無法被識別。
解決方式:轉換時傳入serializerfeature.disablecircularreferencedetect引數,關閉引用,結果和json-lib的方式相同。
4、對於getter方法的識別。tybdm這樣的字段,用myeclipse自動生成的get方法是gettybdm,json-lib能夠識別,但fastjson不行。
解決方式:嚴格的駝峰命名方式,比如gettybdm
或者在屬性上面加上@jsonfield註解
fastjson和jsoncode的區別
jsoncode所需要引用的依賴 cn.miludeer jsoncode 1.2.4 舉例的值 b fastjson和jsoncode的取值方式 jsonobject ob json.parseobject json getjsonobject json getjsonobject b strin...
Gson 和 Fastjson的區別
背景 目前在公司負責的業務,主要是跟json資料打交道,fastjson gson都用,他們適用於不同場景。fastjson號稱是業界處理json效率最高的框架,沒有之一。但在某些場景下,效率最高的不一定 能適合你 來,先上兩道菜 第一道普通菜 public class user public us...
Gson 和 FastJson 效能測試
使用版本 compile com.google.code.gson gson 2.7 compile com.alibaba fastjson 1.2.17 評測樣板為乙個people陣列,people物件 中包含乙個food物件引用。各個字串採用隨機數模擬 盡量模擬列表請求資料。string ms...