最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

完美解決gson將Integer默認(rèn)轉(zhuǎn)換成Double的問題

 更新時(shí)間:2017年03月05日 11:19:21   投稿:jingxian  
下面小編就為大家?guī)硪黄昝澜鉀Qgson將Integer默認(rèn)轉(zhuǎn)換成Double的問題。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

首先javascript只有這些個(gè)類型:

1、Number 在JavaScript中的雙精度浮點(diǎn)格式

2、String 雙引號(hào)的反斜杠轉(zhuǎn)義的Unicode

3、Boolean true 或 false

4、Array 值的有序序列

5、Value 它可以是一個(gè)字符串,一個(gè)數(shù)字,真的還是假(true/false),空(null )等

6、Object 無序集合鍵值對(duì)

7、Whitespace 可以使用任何一對(duì)中的令牌

8、null empty

所以可以得出結(jié)論其實(shí)在javascript中20和20.0其實(shí)是相等的,都是number類型,即javascript中沒有整數(shù)類型一說。

因此我們用gson.fromJson(msg, new TypeToken<Map<String, Object>>() {}.getType())將json字符串msg

例如:

{"id":20,"name":"test"}轉(zhuǎn)換成Map<String,Object>時(shí),就會(huì)把數(shù)字類型的值都轉(zhuǎn)換成了Double類型(此時(shí)map中key為“id”的值是一個(gè)Double類型,為20.0)

當(dāng)我們?cè)侔堰@個(gè)Map用gson.toJson轉(zhuǎn)換成json字符串時(shí),奇葩的事情就發(fā)生了,不再和我們最開始傳進(jìn)來的json字符串一致了,變成了{(lán)"id":20.0,"name":"test"}

想讓它們一致,可以這樣創(chuàng)建gson對(duì)象:

<span style="font-family:arial, 宋體, sans-serif, tahoma, Microsoft YaHei;color:#454545;">   Gson gson = new GsonBuilder().
        registerTypeAdapter(Double.class, new JsonSerializer<Double>() {

          @Override
          public JsonElement serialize(Double src, Type typeOfSrc, JsonSerializationContext context) {
            if (src == src.longValue())
              return new JsonPrimitive(src.longValue());
            return new JsonPrimitive(src);
          }
        }).create();</span>

即如果是Double類型的,判斷一下它和它的longValue是否相等,如果相等則說明小數(shù)位是補(bǔ)了一個(gè)".0",那么我們就返回src.longValue,否則直接返回Double src。

以上這篇完美解決gson將Integer默認(rèn)轉(zhuǎn)換成Double的問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring學(xué)習(xí)筆記之bean的基礎(chǔ)知識(shí)

    Spring學(xué)習(xí)筆記之bean的基礎(chǔ)知識(shí)

    ean在Spring和SpringMVC中無所不在,將這個(gè)概念內(nèi)化很重要,所以下面這篇文章主要給大家介紹了關(guān)于Spring學(xué)習(xí)筆記之bean基礎(chǔ)的相關(guān)資料,文中通過示例代碼介紹的非常詳解,需要的朋友可以參考下。
    2017-12-12
  • 友盟 微信第三方登錄示例

    友盟 微信第三方登錄示例

    這篇文章主要介紹了友盟 微信第三方登錄示例的相關(guān)資料,需要的朋友可以參考下
    2016-10-10
  • RocketMQ源碼分析之Broker過期消息清理機(jī)制

    RocketMQ源碼分析之Broker過期消息清理機(jī)制

    這篇文章主要為大家介紹了RocketMQ源碼分析之Broker過期消息清理機(jī)制示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • Spring Boot使用Druid進(jìn)行維度的統(tǒng)計(jì)和監(jiān)控

    Spring Boot使用Druid進(jìn)行維度的統(tǒng)計(jì)和監(jiān)控

    這篇文章主要介紹了Spring Boot使用Druid進(jìn)行維度的統(tǒng)計(jì)和監(jiān)控,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-04-04
  • springboot vue 跨域問題的解決

    springboot vue 跨域問題的解決

    這篇文章主要介紹了springboot vue 跨域問題的解決,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-10-10
  • Java從入門到精通之旅類和對(duì)象全面解析

    Java從入門到精通之旅類和對(duì)象全面解析

    Java是一門純面向?qū)ο蟮恼Z言(OOP),在面向?qū)ο蟮氖澜缋?一切皆為對(duì)象,面向?qū)ο笫墙鉀Q問題的一種思想,主要依靠對(duì)象之間的交互完成一件事情,這篇文章主要介紹了Java從入門到精通之旅類和對(duì)象全面解析,需要的朋友可以參考下
    2025-04-04
  • Java使用設(shè)計(jì)模式中迭代器模式構(gòu)建項(xiàng)目的代碼結(jié)構(gòu)示例

    Java使用設(shè)計(jì)模式中迭代器模式構(gòu)建項(xiàng)目的代碼結(jié)構(gòu)示例

    這篇文章主要介紹了Java使用設(shè)計(jì)模式中迭代器模式構(gòu)建項(xiàng)目的代碼結(jié)構(gòu)示例,迭代器模式能夠?qū)υL問者隱藏對(duì)象的內(nèi)部細(xì)節(jié),需要的朋友可以參考下
    2016-05-05
  • Java基礎(chǔ)之集合框架詳解

    Java基礎(chǔ)之集合框架詳解

    這篇文章主要介紹了Java基礎(chǔ)之集合框架詳解,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • maven依賴包加載緩慢的原因以及解決方案

    maven依賴包加載緩慢的原因以及解決方案

    這篇文章主要介紹了maven依賴包加載緩慢的原因以及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • Java設(shè)置請(qǐng)求響應(yīng)時(shí)間的多種實(shí)現(xiàn)方式

    Java設(shè)置請(qǐng)求響應(yīng)時(shí)間的多種實(shí)現(xiàn)方式

    在前后端分離的開發(fā)模式中,前端請(qǐng)求后端獲取數(shù)據(jù)時(shí),合理設(shè)置響應(yīng)時(shí)間(超時(shí)時(shí)間)是提升系統(tǒng)性能和用戶體驗(yàn)的關(guān)鍵,本文將深入探討如何在Java中設(shè)置請(qǐng)求的響應(yīng)時(shí)間,需要的朋友可以參考下
    2025-01-01

最新評(píng)論

怀化市| 南华县| 剑川县| 景宁| 安阳县| 吉安市| 德州市| 天津市| 尚义县| 宁南县| 德保县| 莆田市| 监利县| 泊头市| 印江| 大方县| 玉林市| 岗巴县| 玉溪市| 应城市| 莎车县| 元谋县| 莎车县| 九台市| 沂水县| 呈贡县| 阿拉善右旗| 寻甸| 睢宁县| 金溪县| 泾源县| 东宁县| 兰溪市| 县级市| 乌拉特前旗| 斗六市| 宣化县| 清水河县| 辽源市| 长春市| 且末县|