将JSON解析为Java中Jackson的Map Map

时间:2018-02-06 08:50:18

标签: java json

如何解析JSON,如:

{
  "key1": {
    "subKey1" : {
      "field1": "value",
      "field2": "value"
    },
    "subKey2": {
      "field1": "value",
      "field2": "value"
    }
  },
  "key2": {
    "subKey1" : {
      "field1": "value",
      "field2": "value"
    },
    "subKey2": {
      "field1": "value",
      "field2": "value"
    }
  }
}  

获取对象结构,如:

  // key*       subKey*
Map<String, Map<String, DataType>> map;


public class DataType {

    private String field1;
    private String field2;

}

如果这个结构太复杂,如何解析 只是一个DataType的地图?

2 个答案:

答案 0 :(得分:2)

解决方案非常简单:

ObjectMapper jsonMapper = new ObjectMapper();
TypeReference<Map<String, Map<String, DataType>>> typeRef = 
        new TypeReference<Map<String, Map<String, DataType>>>() {};
Map<String, Map<String, DataType>> configMap = jsonMapper.readValue(strJson, typeRef);

答案 1 :(得分:0)

  

我一直在处理同样的问题。我已设法将其变为字符串,然后使用...

手动查找字符串
String string1 = "example of response";
string1.contains(response.body().getAsJsonObject().toString());

另一个替代方法是使用正则表达式(http://www.rexegg.com/regex-quickstart.html)来提取您想要用逗号替换字符(如}和]的字符串...

希望这在某种程度上有所帮助。对不起,这不太方便