Dies ist mein Code unten, aus dem ich die JSONObject
analysieren muss, um einzelne Elemente zu erhalten. Dies ist das erste Mal, dass ich mit JSON arbeite. Also nicht sicher, wie man JSONObject
parsen kann, um die einzelnen Artikel von JSONObject
zu erhalten.Wie kann ich JSONObject iterieren, um einzelne Elemente zu erhalten
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();
}
Meine JSON sieht wie folgt aus:
{
"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
}
}
}
}
Ich brauche latitude
, zu bekommen longitude
, city
, state
, country
, postal_code
aus dem obigen Objekt. Kann jemand einen Vorschlag machen, wie man es effizient macht?
Gute Antwort. Ich würde nur erwähnen, dass in diesem Fall "Map" gut funktioniert, aber um es allgemeiner zu machen, würde ich 'Map ' machen, da einige der Felder numerisch sind. –
Tavo