Java 如何从JSON对象通道检索或获取Yahoo Weather API->;项目->;预测->;{day1}{day2}{day3}{day4}{day5}
我试图访问预测数据,但失败了,Java 如何从JSON对象通道检索或获取Yahoo Weather API->;项目->;预测->;{day1}{day2}{day3}{day4}{day5},java,android,json,yahoo-api,Java,Android,Json,Yahoo Api,我试图访问预测数据,但失败了,NullPointerException,有时甚至崩溃。因为我无法从项->forecast->{data}中访问或检索数据 项目类别: condition = new Condition(); condition.jsonPopulate("condition"); 在条件等级: void jsonPopulate(data){ temp = data.optString("temp"); } 我成功地获得了条件类
NullPointerException
,有时甚至崩溃。因为我无法从项->forecast->{data}
中访问或检索数据
项目类别:
condition = new Condition();
condition.jsonPopulate("condition");
在条件等级:
void jsonPopulate(data){
temp = data.optString("temp");
}
我成功地获得了条件类的数据
但是为什么我不能做同样的预测,因为预测和条件是兄弟姐妹
由于forecast具有数组对象,因此我尝试如下方式检索数据:
上下文项目类发送预测对象
项目类别的代码如下所示
forecast= new Condition();
forecast.jsonPopulate("forecast");
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);
}
}
从预测对象检索数据时上下文预测类
预测类的代码如下所示
forecast= new Condition();
forecast.jsonPopulate("forecast");
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);
}
}
私人字符串日;
私人串高;
私人字符串低;
ArrayListfdetails;
public void jsonPopulate(数据){
对于(i=0;iJSONObject d=newjsonobject(数据);
对于(i=0;i您的意思是我应该使用getString(“day”)而不是optString(“day”);您可以使用optString也没有问题!!!区别在于,如果您指定的键不存在,optString将返回空字符串(”),而另一方面,如果该键在JSONyou中不存在,getString将抛出JSONException。您说JSONObject d=new JSONObject(数据)我喜欢这个JSONObject data=new JSONObject(s);JSONObject queryResult=data.optJSONObject(“query”);query->channel->item->forecast->{},{},{},{},{},{},{};我访问了till forecast,但没有访问它的数据,我像上面提到的那样尝试了预测,但没有得到数据。