首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用GSON库将JSON转换为映射

使用GSON库将JSON转换为映射
EN

Stack Overflow用户
提问于 2022-10-21 06:12:27
回答 1查看 28关注 0票数 0

我希望将JSON响应转换为Map,使用GSON库获得所需输出的最佳方法是什么。

我尝试这个,我只得到ArrayList值。

代码语言:javascript
复制
Map<String, Object> map = gson.fromJson(response, HashMap.class);
ArrayList responseOptions = (ArrayList) map.get("data");

产出:

代码语言:javascript
复制
[{language=Java, value=8}, {language=Ruby, value=7}, {language=Python, value=7}]

示例JSON响应

代码语言:javascript
复制
{
    "data":[
    {
    "language":"Java","value":"8"
    },
    {
    "language":"Ruby","value":"7"
    },
    {
    "language":"Python","value":"6"
    }]
}

映射{Java=8、Ruby=7、Python=6}中的期望输出

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-21 06:22:11

测试代码

代码语言:javascript
复制
    String str = "{\n" +
            "    \"data\":[\n" +
            "    {\n" +
            "    \"language\":\"Java\",\"value\":\"8\"\n" +
            "    },\n" +
            "    {\n" +
            "    \"language\":\"Ruby\",\"value\":\"7\"\n" +
            "    },\n" +
            "    {\n" +
            "    \"language\":\"Python\",\"value\":\"6\"\n" +
            "    }]\n" +
            "}";
    Map map = new Gson().fromJson(str, Map.class);
    List data = (List) map.get("data");
    Map<String, String> result = new HashMap<>();
    for (Object o : data) {
        Map m = (Map) o;
        result.put(m.get("language").toString(), m.get("value").toString());
    }
    System.out.println(result);

测试结果

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74149424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档