2010-11-29 8 views
5

나는 가까운 이벤트에 대한 정사각형 API를 쿼리하는 android에 대한 httpget 요청을 작성 중입니다. 수신 한 JSON 응답은안드로이드에서 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

+0

@Christina : umh, 네''geolat "'*는 장소 안에 있습니다 (귀하의 예에 따르면). 그래서 코드에서 JSONArray venues라는 장소를 나타내는 단일 JSONObject를 얻은 다음,'venueObject'에서 위도와 경도를 가져옵니다. 맞춤법이 올바른지 확인하고 디버거의 코드를 단계별로 실행하여 필요한 경우 'venueObject'값을 자세히 확인하십시오. – Nailuj

+0

{그룹 주위의 사람들이 복사하지 않은 것으로 나타났습니다. 이것이 내가 왜 geolat에 접근하는 것을 허용하지 않는 이유라고 생각합니까 ?? 나는 지금 Q를 편집했다. 도움을 주셔서 감사합니다. – Stina

0

here을 확인하고 JSON 라이브러리를 선택하여 해당 값을 가져올 수 있습니다. 내부