2010-11-29 81 views
5

我正在爲android查詢附近事件的foursquare API的httpget請求。我收到的JSON響應是解析Android中的JSON響應

{"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(); 

我如何可以訪問geolat & geolong值場館信息?

回答

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庫來使用這些值。