Java 在Android Studio中从JSON中的数组中获取值

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":

我想从forecast的第一个“low”(-5)中获取值,但得到的是空错误。我做了一些研究,但没有找到答案。例子非常复杂

 "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();