Este es mi código de abajo del cual necesito analizar el JSONObject
para obtener elementos individuales. Esta es la primera vez que trabajo con JSON. Así que no estoy seguro de cómo analizar JSONObject
para obtener los elementos individuales desde JSONObject
.¿Cómo puedo iterar JSONObject para obtener elementos individuales?
try {
String url = service + version + method + ipAddress + format;
StringBuilder builder = new StringBuilder();
httpclient = new DefaultHttpClient();
httpget = new HttpGet(url);
httpget.getRequestLine();
response = httpclient.execute(httpget);
HttpEntity entity = response.getEntity();
if (entity != null) {
InputStream inputStream = entity.getContent();
bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
for (String line = null; (line = bufferedReader.readLine()) != null;) {
builder.append(line).append("\n");
}
JSONObject jsonObject = new JSONObject(builder.toString());
// Now iterate jsonObject to get Latitude,Longitude,City,Country etc etc.
}
} catch (Exception e) {
getLogger().log(LogLevel.ERROR, e.getMessage());
} finally {
bufferedReader.close();
httpclient.getConnectionManager().shutdown();
}
Mi JSON se ve así:
{
"ipinfo": {
"ip_address": "131.208.128.15",
"ip_type": "Mapped",
"Location": {
"continent": "north america",
"latitude": 30.1,
"longitude": -81.714,
"CountryData": {
"country": "united states",
"country_code": "us"
},
"region": "southeast",
"StateData": {
"state": "florida",
"state_code": "fl"
},
"CityData": {
"city": "fleming island",
"postal_code": "32003",
"time_zone": -5
}
}
}
}
Necesito conseguir latitude
, longitude
, city
, state
, country
, postal_code
del objetivo anterior. ¿Alguien puede brindar alguna sugerencia de cómo hacerlo de manera eficiente?
Buena respuesta. Solo mencionaría que en este caso, 'Map' funciona bien, pero para hacerlo más genérico, haría 'Map ', ya que algunos de los campos son numéricos. –
Tavo