Gson将字符串转map时,int默认为double类型
?
?gson能夠將json字符串轉換成map, 但是在轉成map時, 會默認將字符串中的int , long型的數字, 轉換成double類型 , 數字會多一個小數點 , 如 1 會轉成 1.0
Gson gson = new Gson();
int , long -> double
為了不讓gson進行這樣的轉換, 我們需要自定義gson的轉換適配器TypeAdapter, 通過registerTypeAdapter函數, 對類型進行注冊, 需要注意的是 , 在注冊的類型(包括泛型), 需要跟你使用的類型, 完全一致, 否則可能會無法匹配, 得不到想要轉換的結果.
獲取對象的類型, 這里可以使用下面的方法?
new TypeToken<TreeMap<String, Object>>(){}.getType()?
或者直接寫成?
Map.class
需要gson解析的類型 ,?
new JsonDeserializer<TreeMap<String, Object>>() ;?
這時需要重寫他的deserialize方法, 就是將其中json手動解析成map , 不對數據進行處理
?
在創建完gson之后, 使用時注意自己注冊的type類型 , 這時轉換出的int 不會變成double
TreeMap<String, Object> map =gson.fromJson(json, new TypeToken<TreeMap<String, Object>>(){}.getType());轉載于:https://www.cnblogs.com/yueguanguanyun/p/8435196.html
總結
以上是生活随笔為你收集整理的Gson将字符串转map时,int默认为double类型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 组件 -——SUl Mobile
- 下一篇: git修改文件权限方式