tengo el siguiente JSON:de análisis anidado 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"
}
}
Estoy utilizando el código siguiente para analizarlo:
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);
}
Esto funciona bien y es imprimir todos los valores a excepción de ubicación, que está tipo de otro nivel de anidación. Probé el mismo truco que el código anterior para pasar json.get ("ubicación") pero eso no funciona. Sugiera cómo hacer que funcione para la ubicación.
¿Qué quiere decir con "no funciona", aparece un mensaje de error? Si es así, ¿qué dice? –
Para que quede claro, el código anterior funciona bien. pero cuando intento aplicar la misma lógica para el campo de ubicación, la línea location_fields.getFieldNames() arroja una excepción de puntero nulo. Estoy seguro de que estoy pasando el nombre correcto "ubicación" en la primera línea – Vik