Questo è il mio codice di seguito da cui ho bisogno di analizzare lo JSONObject
per ottenere singoli elementi. Questa è la prima volta che lavoro con JSON. Quindi non so come analizzare JSONObject
per ottenere i singoli articoli da JSONObject
.Come posso iterare JSONObject per ottenere singoli elementi
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();
}
mio JSON è simile al seguente:
{
"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
}
}
}
}
ho bisogno di ottenere latitude
, longitude
, city
, state
, country
, postal_code
dall'oggetto sopra. Qualcuno può fornire qualche suggerimento su come farlo in modo efficiente?
Buona risposta. Vorrei solo ricordare che in questo caso, 'Map' funziona bene, ma per renderlo più generico, farei 'Map ', poiché alcuni campi sono numerici. –
Tavo