2016-11-06 4 views
0

나는이 같은 웹 사이트에서 JSON 객체를 얻고있다 "키의 값"안드로이드 JSONException

JSONObject response = new JSONObject(read(placeConnection));

내가 response.toString();을 실행할 때 내가 그 JSON 객체와 키의 전체 문자열을 얻을 그리고 내가 원하는 가치가 거기에 있습니다.

그러나 내가 response.getString("countryName")을 실행할 때 위의 예외가 발생하고 그 키에 대한 값이 없다고 말합니다.

여기 {"geonames":[{"countryId":"6252001","countryName":"United States","adminCode1":"NC","fclName":"city, village,...","countryCode":"US","lng":"-76.98661","fcodeName":"populated place","toponymName":"Riverdale","distance":"1.30053","fcl":"P","name":"Riverdale","fcode":"PPL","geonameId":4488145,"lat":"34.99599","adminName1":"North Carolina","population":0}]}

오류입니다 : 여기

는 문자열 형태로 JSON입니다

org.json.JSONException: No value for countryName

+0

순서대로 JSON 문자열을 게시하시기 바랍니다. 없다면 ... 예외는 단지 그 것이다. –

+0

@ 루피 니티를 확인하십시오. – Kingamere

+0

response.getString ("geonames")를 수행하면 어떻게됩니까? –

답변

3

귀하의 필드 그래서 첫 번째 수준에 당신의에는 getString는 않습니다, 배열 구조 안에 작동하지.

당신은 (테스트되지 않은) 같은 것을 할 필요가 : 우리가 어떤 COUNTRYNAME 키가 있는지 말할 수있을 때까지

JSONArray geonames = response.getJSONArray("geonames"); 
for(int i = 0 ; i < geonames.length() ; i++){ 
    JSONObject geo = (JSONObject)geonames.get(i); 
    String countryName = geo.getString("countryName"); 

    // Do something with it 
}