首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将JSON转换为Map

将JSON转换为Map
EN

Stack Overflow用户
提问于 2009-01-15 00:00:39
回答 17查看 573.9K关注 0票数 218

转换JSON代码的最佳方式是什么:

{ 
    "data" : 
    { 
        "field1" : "value1", 
        "field2" : "value2"
    }
}

在Java Map中,键是(field1,field2),这些字段的值是(value1,value2)。

有什么想法吗?我应该使用Json-lib吗?或者如果我编写自己的解析器会更好?

EN

回答 17

Stack Overflow用户

回答已采纳

发布于 2009-02-24 21:11:57

我希望你是在开玩笑说要写你自己的解析器。:-)

对于这样一个简单的映射,http://json.org (java小节)中的大多数工具都可以工作。对于其中一个(Jackson https://github.com/FasterXML/jackson-databind/#5-minute-tutorial-streaming-parser-generator),你会这样做:

Map<String,Object> result =
        new ObjectMapper().readValue(JSON_SOURCE, HashMap.class);

(其中JSON_SOURCE是文件、输入流、阅读器或json内容字符串)

票数 394
EN

Stack Overflow用户

发布于 2011-11-15 14:25:49

使用GSON库:

import com.google.gson.Gson;
import com.google.common.reflect.TypeToken;
import java.lang.reclect.Type;

使用以下代码:

Type mapType = new TypeToken<Map<String, Map>>(){}.getType();  
Map<String, String[]> son = new Gson().fromJson(easyString, mapType);
票数 46
EN

Stack Overflow用户

发布于 2011-12-01 18:15:31

我喜欢google gson库。

当你不知道json的结构时。您可以使用

JsonElement root = new JsonParser().parse(jsonString);

然后你就可以使用json了。例如,如何从你的gson中获取"value1“:

String value1 = root.getAsJsonObject().get("data").getAsJsonObject().get("field1").getAsString();
票数 35
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/443499

复制
相关文章

相似问题

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