Gson将json转Map的那些坑

本文记录了使用Gson将json转换为Map时遇到的问题。Gson默认将json键转换为String,即使Map的key声明为Integer。未指定类型时,int和double会被转为String,而直接赋值给Map<Integer, String>不会报错,这涉及到类型推断和转换的细节。" 123661163,672168,量化交易入门:东方财富KDJ指标解析与量价关系探讨,"['金融', '股票分析', '技术指标', '成交量', '数据分析']
摘要由CSDN通过智能技术生成

        利用Gson将一串json数据转为Map格式,再get数据,相比很多人都做过。今天遇到一个“坑”,mark一下。

首先明确一点:Gson是可以将json转为Map的,并且Map的key是允许为Integer的。

    public void test() {
<span style="white-space:pre">	</span>String json1 = "{\"k1\"=\"外观\",\"k2\"=\"大厅\"}";
        Map<String, String> map = gson.fromJson(json1, HashMap.class);
        System.out.println(map.get("k1")); // 输出“外观”
        Map<Integer, String> map2 = new HashMap<>();
        map2.put(1, "value");
        System.out.println(map2.get(1)); // 输出“value”
    }

        接下来,看看这个“坑”。

 @Test
    public void testBug() { <span style="white-space:pre">	</span>String json2 = 
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值