遍歷 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"))