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