2010-11-29 2 views
5

Я пишу запрос httpget для android, который запрашивает api для четырех соседних событий. Ответ JSON, который я получаю, составляетParsing Ответ JSON в Android

{"groups": [ 
{ 
    "type": "Nearby", 
    "venues": [ 
    { 
     "id": 2587838, 
     "name": "Marriott Druids Glen Hotel Newtownmountkennedy", 
     "primarycategory": { 
     "id": 79281, 
     "fullpathname": "Travel:Resort", 
     "nodename": "Resort", 
     "iconurl": "http://foursquare.com/img/categories/travel/resort.png" 
     }, 
     "address": "Newtownmountkennedy", 
     "city": "Newtownmountkennedy", 
     "state": "", 
     "verified": false, 
     "geolat": 53.091717, 
     "geolong": -6.079162, 
     "stats": { 
     "herenow": "0" 
     }, 
     "distance": 5596 
    }, 

Может быть много таких объектов. Я могу получить его, чтобы распечатать информацию о выставочных центрах, используя этот код

InputStream instream = entity.getContent(); 
String result= convertStreamToString(instream); 
Log.i("Hoosheer0",result); 

// A Simple JSONObject Creation 
JSONObject json=new JSONObject(result); 
JSONArray venues = json.getJSONArray("groups"); 
//JSONArray docsArray = jObject.getJSONArray("docs"); 
for (int i = 0; i<venues.length();i++){ 
    String name = venues.getJSONObject(i).optString("venues"); 
    //String venueName = name. 
    Log.i("This is a name... pleasse", name); 
} 

instream.close(); 

Как я могу получить доступ к geolong значения geolat &?

ответ

12

Я считаю, размещая этот код в ваш для цикла должен сделать трюк:

JSONObject venueObject = venues.getJSONObject(i); 
double geoLat = venueObject.getDouble("geolat"); 
double geoLong = venueObject.getDouble("geolong"); 
+0

это возвращает ошибку «Нет значения для geolat» Это потому, что он находится внутри места проведения? – Stina 2010-11-30 09:07:22

0

Вы можете проверить here и выбрать библиотеку JSON для использования в этих целях.