Java 在Android Studio中从JSON中的数组中获取值
我想从forecast的第一个“low”(-5)中获取值,但得到的是空错误。我做了一些研究,但没有找到答案。例子非常复杂Java 在Android Studio中从JSON中的数组中获取值,java,android,json,Java,Android,Json,我想从forecast的第一个“low”(-5)中获取值,但得到的是空错误。我做了一些研究,但没有找到答案。例子非常复杂 "item": { "forecast": [ { "date": "7 Dec 2015", "day": "Mon", "high": "1", "low": "-5", }, { "date": "8 Dec 2015", "day":
"item": {
"forecast": [
{
"date": "7 Dec 2015",
"day": "Mon",
"high": "1",
"low": "-5",
},
{
"date": "8 Dec 2015",
"day": "Tue",
"high": "-2",
"low": "-6",
},
],
Item.java
private Forecast forecast;
public Forecast getForecast() {
return forecast;
}
forecast=new Forecast();
forecast.paupulate(data.optJSONObject("forecast[0]"));
Forecast.java
private int low;
@Override
public void paupulate(JSONObject data) {
low=data.optInt("low");
}
public int GetLow(){
return low;
}
谢谢你的帮助 您的Pojo将forecast json视为一个对象,但它是一个数组 您需要将pojo更改为-
private Forecast[] forecast;
public Forecast[] getForecast() {
return forecast;
}
然后,为了得到第一个低(-5)你做
forecast
是一个JSONArray
而不是JSONObject
错误:“forecast中的org.json.JSONObject不能应用于org.json.JSONArray,我会将它们添加到Item.java,不是吗?当我这样做时,我在这一行中得到了非静态错误:forecast[]forecast=Item.getForecast();yes getForecast()是一个非静态方法的人,你需要先有一个item类的实例才能使用非静态方法,你可以通过本教程了解java和oop的基础知识。抱歉,我不能成功。private static Forecast[]Forecast;public static Forecast[]getForecast(){return Forecast;}public void pauplate(JSONObject data){forecast=new forecast();forecast.paupulate(data.optJSONObject(“forecast[0]”);}paupulate和forecast=new forecast()有错误。我知道forecast是数组,但我无法修复
Forecast[] forecasts = myItem.getForecast();
int requiredValue = forecasts[0].GetLow();