考虑以下JSON:
[
{
"map": "TEST",
"values": [
"test",
"test2"
]
},
{
"map": "TEST1",
"values": [
"test",
"test3",
"test4"
]
},
{
"map": "TEST2",
"values": [
"test4",
"test2",
"test5",
"test2"
]
}
]
已经由getResourceAsString函数加载到字符串中。如何在我的键是“ map”字段且我的值是“ values”字段数组的情况下制作HashMap?我在其他类似问题中尝试了许多解决方案,但没有任何效果。
这是我的代码的开头:
ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true);
但是我不知道如何将其分配给Map,readValue方法似乎无法提供正确的信息
您可以将此json使用List<Map<Object,Object>>
,因为它是3个对象的列表,因此无法将其直接转换为HashMap
,因此请尝试以下操作:
String json = "[{\"map\":\"TEST\",\"values\":[\"test\",\"test2\"]},{\"map\":\"TEST1\",\"values\":[\"test\",\"test3\",\"test4\"]},{\"map\":\"TEST2\",\"values\":[\"test4\",\"test2\",\"test5\",\"test2\"]}]";
List<Map<Object, Object>> jsonObj = mapper.readValue(json, List.class);