假设json值如下:
{
"status": "1",
"geocodes": [{
"citycode": "01"
},
{
"citycode": "02"
}
]
}
先解析成JsonNode对象jsonNode,现要获取JsonNode字段
@Test
public void testJsonNode(){
String json = "{\n" +
"\t\"status\": \"1\",\n" +
"\t\"geocodes\": [{\n" +
"\t\t\t\"citycode\": \"01\"\n" +
"\t\t},\n" +
"\t\t{\n" +
"\t\t\t\"citycode\": \"02\"\n" +
"\n" +
"\t\t}\n" +
"\t]\n" +
"}";
// JsonUtil是我自己写的工具类
JsonNode jsonNode = JsonUtil.fromJson(json);
String textValue = getTextValue(jsonNode, "/status");
String citycode1 = getTextValue(jsonNode, "/geocodes/0/citycode"); //geocodes的类型是数据列表
String citycode2 = getTextValue(jsonNode, "/geocodes/1/citycode");
System.out.println("textValue = "+textValue);
System.out.println("citycode1 = "+citycode1);
System.out.println("citycode2 = "+citycode2);
}
protected String getTextValue(JsonNode root, String path) {
JsonNode node = root.at(path);
return node.isMissingNode() || node.isArray() ? null : node.asText();
}
执行效果如下