首页 文章

Android Studio:org.json.JSONObject类型无法转换为JSONArray

提问于
浏览
0

我得到错误:类型org.json.JSONObject在我尝试检索JSON值时无法转换为JSONArray .

JSONArray jsonarray = new JSONArray(data);

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


            JSONObject JO = (JSONObject) jsonarray.get(i);
            String id       = JO.getString("languages");

            dataParsed = dataParsed + id;

        }

JSON看起来像这样(删除了敏感数据)

{  
   "ip":"",
   "type":"",
   "continent_code":"EU",
   "continent_name":"Europe",
   "country_code":"GB",
   "country_name":"United Kingdom",
   "region_code":"ENG",
   "region_name":"England",
   "city":"",
   "zip":"",
   "latitude":,
   "longitude":,
   "location":{  
      "geoname_id":,
      "capital":"London",
      "languages":[  
         {  
            "code":"en",
            "name":"English",
            "native":"English"
         }
      ],
      "country_flag":"http:\/\/assets.ipstack.com\/flags\/gb.svg",
      "country_flag_emoji":"\ud83c\uddec\ud83c\udde7",
      "country_flag_emoji_unicode":"U+1F1EC U+1F1E7",
      "calling_code":"44",
      "is_eu":true
   }
}

我应该提一下,我实际想要检索的数据是语言的名称 .

1 回答

  • 0

    你可以试试这个:

    JSONObject obj = new JSONObject(data);
    JSONObject objLocation = obj.getJSONObject("location");
    JSONArray arrayLanguage = objLocation.getJSONArray("languages");
    
    for (int i = 0; i < arrayLanguage.length(); i++) {
        JSONObject JO = (JSONObject) arrayLanguage.get(i);
        String id = JO.getString("languages");
        dataParsed = dataParsed + id;
    }
    

相关问题