gpt4 book ai didi

java - 如何将Json反序列化为Map的Map?

转载 作者:行者123 更新时间:2023-12-02 01:17:53 27 4
gpt4 key购买 nike

我想将 json 反序列化为

Map<String, Map<String, String>

这是我要转换的json结构。

{
"filetype": {
"cell": "value"
},
"fileType2": {
"cell2": "value2"}
}

我尝试使用 Map<String, Map<String, String> 创建一个类输入并尝试使用 ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper)在 jackson :

class MapOfMap {
Map<String, Map<String, String>> mapOfMap;
//getter and setter
}
objectMapper.readValue(
new File(this.getClass()
.getClassLoader()
.getResource("configs/sample.json").getFile()),
MapOfMap.class
)

我收到此错误:

Unrecognized field "fileType".

有什么办法可以做到这一点吗?

最佳答案

您不必为 Map 编写包装类。只需告诉映射器您想要一张 map 即可:

    String jsonString = "{\n" + 
" \"filetype\": {\n" +
" \"cell\": \"value\"\n" +
" },\n" +
" \"fileType2\": {\n" +
" \"cell2\": \"value2\"}\n" +
" }";

Map<String, Map<String, String>> map;
ObjectMapper mapper = new ObjectMapper();

try {
map = mapper.readValue(
jsonString,
new TypeReference<Map<String, Map<String, String>>>(){}
);
System.out.println(map);
} catch (Exception e) {
e.printStackTrace();
}

它打印:{filetype={cell=value}, fileType2={cell2=value2}},看起来像你想要的。

引用:this

关于java - 如何将Json反序列化为Map的Map?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58236591/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com