将嵌套的 JSON 转换为嵌套的 HashMap

时间:2021-04-15 07:27:41

标签: java json

如何在不创建 pojo 类的情况下将嵌套的 json 转换为嵌套的 hashmap。

{
  "IdeskFields": [
    {
      "fieldName": "CLIENT_TAX_TYPE_ID",
      "values": [
        {
          "key": "dataType",
          "value": "Integer"
        },
        {
          "key": "CLIENT_TAX_TYPE_VAT",
          "value": "2"
        },
        {
          "key": "CLIENT_TAX_TYPE_GST",
          "value": "8"
        },
        {
          "key": "CLIENT_TAX_TYPE_Tax",
          "value": "9"
        }
      ]
    }
  ]
}

需要转换为Map> map

2 个答案:

答案 0 :(得分:1)

您可以使用 ObjectMapper 中的 jackson

Map map = new ObjectMapper().readValue(jsonString, HashMap.class);

地图将是

的一个实例
HashMap<String, ArrayList<LinkedHashMap<String, ArrayList<LinkedHashMap<String, String>>>>>

答案 1 :(得分:1)

如果您可以使用 Gson 库,那么您可以执行以下操作

Gson gson = new Gson();

Map map = gson.fromJson(str, Map.class);

但这将留给图书馆来确定值的类型。

因此使用 Gson#fromJson(String, Type) 的更好方法如下:

Type mapType = new TypeToken<Map<String, List<Map<String, Object>>>>() {}.getType();

Map<String, List<Map<String, Object>>> map = gson.fromJson(str, mapType);

我使用 Object 作为内部地图值类型,因为您的值不同,即字符串和另一个地图的列表。

相关问题