2016-11-06 38 views
0

我是一個從這樣的網站得到一個JSON對象「鍵沒有任何價值」:的Android JSONException

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

,當我執行response.toString();我得到一個JSON對象和重點的整個字符串和我想要的價值在那裏。

但是,當我執行response.getString("countryName")我得到了上述例外,它說該鍵沒有值。

這裏是字符串形式的JSON:

{"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}]}

以下是錯誤:

org.json.JSONException: No value for countryName

+0

請張貼的JSON字符串,以便我們能夠告訴我們,如果有任何國家名稱的關鍵。如果沒有......例外就是這樣。 –

+0

@Lupinity請檢查編輯 – Kingamere

+0

如果你做了response.getString(「geonames」),會發生什麼? –

回答

3

你的領域是一個數組結構裏面,所以你在第一級的getString呢不行。

你需要做的是這樣(未經):

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 
}