无法使用Retrofit获得响应

时间:2017-07-03 05:59:09

标签: java android retrofit2

enter image description here

我试图从下面的json中获取temp_max的值,但是我得到了null。此外,我能够获得cod,message和cnt的值。

我正在使用“”response.body()。getTempMax()“”来获取值。如果这不是正确的方法,请告诉我。

模型类

public class Main {


    @SerializedName("temp_min")
    @Expose
    private Double tempMin;
    @SerializedName("temp_max")
    @Expose
    private Double tempMax;

    public Double getTempMin() {
        return tempMin;
    }

    public void setTempMin(Double tempMin) {
        this.tempMin = tempMin;
    }

    public Double getTempMax() {
        return tempMax;
    }

    public void setTempMax(Double tempMax) {
        this.tempMax = tempMax;
    }
    }
}

MainActivity

ApiInterface apiInterface= ApiClient.getClient().create(ApiInterface.class);

    Call<Main> call = apiInterface.getWeather();
    call.enqueue(new Callback<Main>()
    {
        @Override
        public void onResponse(Call<Main> call, Response<Main> response)
        {
            response.body();
            Toast.makeText(MainActivity.this, "The cnt is " + response.body().getTempMax(), Toast.LENGTH_LONG).show();
        }

        @Override
        public void onFailure(Call<Main> call, Throwable t)
        {
            Log.e("Main", t.toString());
        }
    });

1 个答案:

答案 0 :(得分:0)

您需要更新为解析提供的模型类

    class JSONResponse{
    int cod;
    String message;
    int cnt;
    ArrayList<Data> list;
    }


   class Data{
    long dt;
    Main main;

   }

   class Main{
   //All properties related to main class
   }

这就是你需要构建的方式。这不简单吗?现在,当您需要访问Main类的成员时,您需要从JsonResponse类遍历到Data类并访问Main对象并访问该属性。