當(dāng)前位置:
首頁(yè) >
前端技术
> javascript
>内容正文
javascript
用gson得JSON,数值变为double类型 ,去掉double值中的小数位(3.0改为3)
生活随笔
收集整理的這篇文章主要介紹了
用gson得JSON,数值变为double类型 ,去掉double值中的小数位(3.0改为3)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
前些天發(fā)現(xiàn)了一個(gè)巨牛的人工智能學(xué)習(xí)網(wǎng)站,通俗易懂,風(fēng)趣幽默,忍不住分享一下給大家。點(diǎn)擊跳轉(zhuǎn)到教程。
1. 項(xiàng)目中有個(gè)接口的數(shù)據(jù)是從緩存中讀取再組成JSON 格式返出,原本緩存中數(shù)據(jù)是這樣的:
用Gson 組成JSON?后,數(shù)值部分都成了Double類型,這不是我要的效果。
// 緩存中取String json = _jedisClient.get("RICHER_TRAN_RECORDS_GIVE"+user.getId());if (StringUtils.isNotBlank(json)){resultMap = new Gson().fromJson(json, new TypeToken<Map<String,Object>>(){}.getType());數(shù)值部分成了Double類型,即:
?
2. 似乎Gson 默認(rèn)會(huì)把數(shù)值轉(zhuǎn)化為double。于是我只好再次對(duì)數(shù)據(jù)循環(huán)處理:
// 方式一 : gson轉(zhuǎn)換默認(rèn)是double類型 ,去掉70.0 這種數(shù)據(jù)的小數(shù)位Set<String> keySet = resultMap.keySet();for(Iterator<String> it = keySet.iterator();it.hasNext();){String key = it.next();if(resultMap.get(key) instanceof Double){resultMap.put(key, ((Double)resultMap.get(key)).intValue());}else{List<Map<String, Object>> list = (List<Map<String, Object>>)resultMap.get(key);for(Iterator<Map<String, Object>> mapIt = list.iterator();mapIt.hasNext();) {Map<String, Object> map = mapIt.next();Integer format = ((Double)map.get("format")).intValue();map.put("format", format);}}}// 方式二 : gson轉(zhuǎn)換默認(rèn)是double類型 ,去掉70.0 這種數(shù)據(jù)的小數(shù)位Iterator<Entry<String,Object>> iter = resultMap.entrySet().iterator(); while(iter.hasNext()){ Entry<String,Object> entry = iter.next(); Object val = entry.getValue();if(val instanceof Double){val = ((Double) val).intValue();entry.setValue(val);}else{String key = entry.getKey();Object keyval = resultMap.get(key);List<Map<String, Object>> list = (List<Map<String, Object>>)keyval;Iterator<Map<String, Object>> it = list.iterator();while(it.hasNext()){Map<String,Object> map = it.next(); Integer format = ((Double)map.get("format")).intValue();map.put("format", format);}}}這樣去掉數(shù)值的小數(shù)部份。
3.僅以此作為記錄。希望有更簡(jiǎn)單的辦法處理這種情況,最好是組成JSON時(shí)也能不改變?cè)瓟?shù)據(jù)類型,如果有網(wǎng)友知道,希望能留言告訴我,謝謝
?
總結(jié)
以上是生活随笔為你收集整理的用gson得JSON,数值变为double类型 ,去掉double值中的小数位(3.0改为3)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: USACO 1.1 Friday the
- 下一篇: SOA 说明,解析