Ho la seguente JSON:Analisi annidato 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"
}
}
Sto usando il seguente codice di analizzarlo:
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);
}
Questo funziona bene e stampare tutti i valori ad eccezione di posizione che è tipo di un altro livello di nidificazione. Ho provato lo stesso trucco del codice precedente per passare a json.get ("location") ma non funziona. Si prega di suggerire come farlo funzionare per la posizione.
Cosa intendi per "non funziona", ricevi un messaggio di errore? Se sì, cosa dice? –
Giusto per essere chiari, il codice sopra funziona perfettamente. ma quando provo ad applicare la stessa logica per il campo posizione, la riga location_fields.getFieldNames() genera un'eccezione del puntatore nullo. Sono sicuro che sto passando il nome giusto "posizione" sulla prima riga – Vik