遍历 JSON 文档
在以下示例中,json
包含具有以下数据的 JSON 对象:
[
{
"name": "John Doe",
"work": {
"company": {
"name": "ASDF INC",
"country": "USA"
},
"cargo": "Programmer"
},
"tags": ["java", "jvm", "play"]
},
{
"name": "Bob Doe",
"work": {
"company": {
"name": "NOPE INC",
"country": "AUSTRALIA"
},
"cargo": "SysAdmin"
},
"tags": ["puppet", "ssh", "networking"],
"active": true
}
]
获取某些用户的名字(不安全)
JsonNode node = json.get(0).get("name"); // --> "John Doe"
// This will throw a NullPointerException, because there is only two elements
JsonNode node = json.get(2).get("name"); // --> *crash*
获取用户名(安全方式)
JsonNode node1 = json.at("/0/name"); // --> TextNode("John Doe")
JsonNode node2 = json.at("/2/name"); // --> MissingNode instance
if (! node2.isMissingNode()) {
String name = node2.asText();
}
获取第一个用户工作的国家/地区
JsonNode node2 = json.at("/0/work/company/country"); // TextNode("USA")
获取每个国家
List<JsonNode> d = json.findValues("country"); // List(TextNode("USA"), TextNode("AUSTRALIA"))
查找包含活动属性的每个用户
List<JsonNode> e = json.findParents("active"); // List(ObjectNode("Bob Doe"))