2016-11-06 10 views
0

私はこのようなウェブサイトからJSONオブジェクトを取得しています「キーの値なし」:アンドロイド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

私たちはどんなCOUNTRYNAMEキーがあるかどう伝えることができるようにするために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 
} 
関連する問題