2012-10-29 3 views
-1

나는 안드로이드 프로그래밍에 익숙하지 않으며 JSONarray에서 특정 객체를 얻는 방법을 알고 싶습니다.json 배열에서 JSONObject를 얻을 수있는 방법

{"results" : [ 
    { 
    "address_components" : [ 
     { 
      "long_name" : "Contern", 
      "short_name" : "Contern", 
      "types" : [ "locality", "political" ] 
     }, 

     { 
      "long_name" : "Luxembourg", 
      "short_name" : "Luxembourg", 
      "types" : [ "administrative_area_level_1", "political" ] 
     }, 

     { 
      "long_name" : "Luxembourg", 
      "short_name" : "LU", 
      "types" : [ "country", "political" ] 
     } 
    ], 

    "formatted_address" : "Contern, Luxembourg", 

    "geometry" : { 
     "bounds" : { 
      "northeast" : { 
       "lat" : 49.621830, 
       "lng" : 6.302790 
      }, 

      "southwest" : { 
       "lat" : 49.56759010, 
       "lng" : 6.195380 
      } 
     }, 

     "location" : { 
      "lat" : 49.58515930, 
      "lng" : 6.2274880 
     }, 

그리고 난 위치에서 위도와 LNG를 추출 할 :

내 JSON은 다음과 같습니다. 내 코드는 다음과 같습니다

arr = json.getJSONArray("results"); 
     JSONObject location=arr.getJSONObject(4); 
     double lng = location.getDouble("lng"); 
     double lat = location.getDouble("lat"); 
+1

그리고 지금 당신은 무엇을 기대합니까? – RvdK

+0

전체 json 문자열을 게시하십시오. –

답변

0

안녕하세요 내가 가져 오는하고 아래 국가 코드 아래

JSON 문자열 여기

{ 
"result": "success", 
"countryCodeList": 
[ 
    {"countryCode":"00","countryName":"World Wide"}, 
    {"countryCode":"kr","countryName":"Korea"} 
] 
} 

을 나는 당신의 JSON 것을 말하고 싶었다

JSONObject json = new JSONObject(jsonstring); 
JSONArray nameArray = json.names(); 
JSONArray valArray = json.toJSONArray(nameArray); 

JSONArray valArray1 = valArray.getJSONArray(1); 

valArray1.toString().replace("[", ""); 
valArray1.toString().replace("]", ""); 

int len = valArray1.length(); 

for (int i = 0; i < valArray1.length(); i++) { 

Country country = new Country(); 
JSONObject arr = valArray1.getJSONObject(i); 
country.setCountryCode(arr.getString("countryCode"));       
country.setCountryName(arr.getString("countryName")); 
arrCountries.add(country); 
} 
2

자세한 사항 참조 파일이 잘못되었지만 더 자세히 본 후에 코드가 좋지 않다고 생각합니다. 네가 지금 원해. "results"는이 경우 JsonArray입니다. 그러나 전체 JsonObjects의 배열이지 속성이 아닙니다. 전체 JsonObject는 address_components, format_address, geometry 등이있는 객체입니다. "location"은 "geometry"객체의 일부이기도합니다.

확신하는

은 "결과"배열에 하나의 개체 만이있을 것이다 - 당신이 할 수 있습니다 : 당신이 결과에서 1 개 이상의 개체가

arr = json.getJSONArray("results"); 
if (arr.length() > 0){ 
    JSONObject resultObject = arr.getJSONObject(0); 
    JSONObject geometry = resultObject.getJSONObject("geometry"); 
    JSONObject location = geometry.getJSONObject("location"); 
    double lng = location.getDouble("lng"); 
    double lat = location.getDouble("lat"); 
} 

- 당신이 그들에 루프에와 필요한 가정 당신이 필요한 것을 찾으십시오.

+0

좋은 작품 .. 하나님 대답. !! – MKJParekh

관련 문제