0

私はAndroidに比較的慣れていないので、いくつかのデータを解析しようとしていますが、LogCatで次のエラーが発生しているようです:

Unexpected value from nativeGetEnabledTags: 0
Error parsing data org.json.JSONException

JSON データは http://api.wunderground.com/api/180dde448747af27/forecast/q/UK/Bradford.jsonから取得しています。

次のコードを使用してデータを引き出しています。

JSONArray forecasts = json.getJSONArray("forecast");

for (int i=0;i<forecasts.length();i++) {                        
    HashMap<String, String> map = new HashMap<String, String>();    
    JSONObject e = forecasts.getJSONObject(i);

    // simpleforecast is a json array
    JSONArray forecastday = json.getJSONArray("forecastday");
    JSONObject fd = forecastday.getJSONObject(i);

    String icon = fd.getString("icon");

    map.put("id", String.valueOf(i));
    map.put("icon", icon);
    mylist.add(map);            
}

エラーはJSONのプルに関係していると思います.おそらく正しく解析していませんが、それを取得する正しい方法を見つけることができないようです. このコードは try-catch で囲まれており、コードを追加するリスト アダプターを取得しています。

何か見落としがあれば申し訳ありませんが、これで十分だと確信しています。これがエラーの原因であると信じているからです。

4

2 に答える 2

1

forcast を JSONArray と誤認します。

JSON

したがって、 を使用JSONArray forecasts = json.getJSONArray("forecast");して予測を解析するべきではなく、 を使用する必要がありますJSONObject forecastObj = json.getJSONObject("forecast")。ただし、forecastday は json 配列であるため、 を使用forecastObj.getJSONArray("forecastday")して作業することができます。

于 2013-03-09T23:18:01.403 に答える
1

JSONArrayiconから取得するように現在の json 文字列を解析します。forecastday

// get Json forecast object
JSONObject forecasts_obj = json.getJSONObject("forecast");
// get Json simpleforecast object
JSONObject simpleforecast_obj = forecasts_obj.getJSONObject("simpleforecast");

// get Json forecastday Array
JSONArray forecastday_arr = simpleforecast_obj.getJSONArray("forecastday");

for (int i=0;i<forecastday_arr.length();i++) {                        
    HashMap<String, String> map = new HashMap<String, String>();    
    JSONObject e = forecastday_arr.getJSONObject(i);

    String icon = e.getString("icon");
    map.put("id", String.valueOf(i));
    map.put("icon", icon);
    mylist.add(map);            
}
于 2013-03-09T23:09:43.697 に答える