私は予測データに到達しようとしましたが、 NullPointerException
、場合によってはクラッシュします。私はアイテム-> forecast -> {data}
からデータに到達したり検索したりしないためです。Yahoo Weather APIをJSONオブジェクトチャンネルから取得または取得する方法 - > item - > forecast - > {day1} {day2} {day3} {day4} {day5}
は、Itemクラスで:条件クラスで
condition = new Condition();
condition.jsonPopulate("condition");
:
void jsonPopulate(data){
temp = data.optString("temp");
}
私は、成功した条件クラスでデータを得た
しかし、なぜ私は予測するので、予測のための同じを傾けると、条件は兄弟です。
Iは以下のようにしようとしたので、予測は、配列オブジェクトを有しているので、データを取得する:以下のような項目クラスの予測 コードのオブジェクトを送信
コンテキスト項目クラス。
forecast= new Condition();
forecast.jsonPopulate("forecast");
関係予測クラスときretriveデータ以下のような予測クラスの予測対象 コードから。
private String day;
private String high;
private String low;
ArrayList<ForecastDetails>fdetails;
public void jsonPopulate(data){
for(i=0; i<data.length(); i++){
day = data.optString("day");
high = data.optString("high");
low = data.optString("low");
fdetails.add(day);
fdetails.add(high);
fdetails.add(low);
}
}
とArrayList<ForecastDetails>;
に維持しようとしたが失敗し、誰もがヤフー天気の項目オブジェクトから予測データを取得する方法について私を提案することができました。
つまり、optString( "day")の代わりにgetString( "day")を使用する必要があります。 – shaheb
あなたもoptStringを使用できます問題なし.. !!!違いは、指定されたキーが存在しない場合、optStringが空の文字列( "")を返す一方、getStringがJSONExceptionをスローする場合、キーがJSONに存在しない場合 – AnilCk
JSONObject d = new JSONObject(data) ; 私はこれが好きでした JSONObject data =新しいJSONObject(s); JSONObject queryResult = data.optJSONObject( "query"); query-> channel-> item-> forecast-> {}、{}、{}、{}、{}; 私は予報までアクセスしていますが、予測の中にはデータがありません。上記のようにしてみましたが、データは取得できませんでした。 – shaheb