我有一个JSON格式的字符串,密钥是一个随机数。
{
"tasks": {
"0": {
"key1": "value1"
},
"100": {
"key1": "value2"
}
}
如何使用 Jackson 将其转换为Java对象?
如何定义Java类以便我可以像这样使用 Jackson ?
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.readValue(myStr, XXXX);
答案 0 :(得分:0)
根据您的需要,您可以使用几种方法:
JsonNode
您可以将JSON解析为Jackson树模型。也就是说,从JsonNode
包中加入com.fasterxml.jackson.databind
:
ObjectMapper mapper = new ObjectMapper();
JsonNode tree = mapper.readTree(json);
您也可以使用Jackson将JsonNode
解析为POJO:
MyBean bean = mapper.treeToValue(jsonNode, MyBean.class);
Map<String, Object>
根据您的要求,您可以使用Map<String, Object>
代替JsonNode
:
ObjectMapper mapper = new ObjectMapper();
Map<String, Object> parsed = mapper.readValue(json,
new TypeReference<Map<String, Object>>() {});
要将地图转换为POJO,请使用:
MyBean bean = mapper.convertValue(map, MyBean.class);