将JSON字符串映射到HashMap中

问题描述 投票:0回答:1

考虑以下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方法似乎无法提供正确的信息

java arrays json dictionary
1个回答
0
投票

您可以将此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);
© www.soinside.com 2019 - 2024. All rights reserved.