Parsen von verschachtelten JSON

Habe ich folgenden JSON:

{
  "registration": {
    "name": "Vik Kumar",
    "first_name": "Vik",
    "last_name": "Kumar",
    "bloodGroup": "B-",
    "gender": "male",
    "birthday": "10\/31\/1983",
    "email": "vik.ceo\u0040gmail.com",
    "cellPhone": "1234123456",
    "homePhone": "1234123457",
    "officePhone": "1234123458",
    "primaryAddress": "jdfjfgj",
    "area": "jfdjdfj",
    "location": {
      "name": "Redwood Shores, California",
      "id": 103107903062719
    },
    "subscribe": true,
    "eyePledge": false,
    "reference": "fgfgfgfg"
  }
}

Ich bin mit dem folgenden code zu analysieren:

JsonNode json = new ObjectMapper().readTree(jsonString);
JsonNode registration_fields = json.get("registration");

Iterator<String> fieldNames = registration_fields.getFieldNames();
while(fieldNames.hasNext()){
    String fieldName = fieldNames.next();
    String fieldValue = registration_fields.get(fieldName).asText();
    System.out.println(fieldName+" : "+fieldValue);
}

Dies funktioniert gut und es drucken Sie alle Werte, außer für die Lage, die Art von einer anderen Ebene verschachteln. Ich versuchte den gleichen trick wie oben-code zu json übergeben.get("location") aber das funktioniert nicht. Bitte vorschlagen, wie es funktionieren für die Lage.

  • Was meinst du mit "funktioniert nicht", bekommen Sie eine Fehlermeldung? Wenn ja, was sagt es?
  • Nur um klar sein, der obige code funktioniert einwandfrei. aber wenn ich versuche die gleiche Logik für das Feld " Ort " dann die Zeile location_fields.getFieldNames() wirft eine null-Zeiger-Ausnahme. Ich bin sicher, ich bin die Weitergabe der richtige name ist "location" in der ersten Zeile
InformationsquelleAutor Vik | 2012-09-15
Schreibe einen Kommentar