如何在不创建 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
答案 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 作为内部地图值类型,因为您的值不同,即字符串和另一个地图的列表。