Gson使用中類型轉換容易出現的問題


Gson使用中類型轉換容易出現的問題

最近在項目中使用Gson將Json串轉成Map,發現一個int或long類型字段轉換后會。
造成與其他系統聯調時造成bug。

因此,這里將Gson與FastJSON轉換做個比較

long a = 201800L;
long b = 201900L;

Map<String,Object> map = new HashMap<>();
map.put("a", a);
map.put("b", b);

Gson gson = new Gson();
String jsonString = gson.toJson(map);

System.out.println("json串:" + jsonString);

Map map1 = gson.fromJson(jsonString, new TypeToken<Map<String, Object>>() {
}.getType());
System.out.println("Gson轉換后的map:" + map1);

Map map2 = JSON.parseObject(jsonString, Map.class);
System.out.println("FastJSON轉換后的map:" + map2);

實驗結果:


json串:{"a":201800,"b":201900}

Gson轉換后的map:{a=201800.0, b=201900.0}

FastJSON轉換后的map:{a=201800, b=201900}

由此可見,在使用Gson時要注意其類型轉換上的問題


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM