fastjson和json lib的區別

2022-09-01 16:21:24 字數 872 閱讀 9095

上次把原生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...