如何从Retrofit 2.0上的HTTP回调访问json对象

时间:2016-05-08 14:13:06

标签: android json android-studio retrofit retrofit2

您好我使用改造来带回一个java对象, 我想根据响应中的一个字段更改文本字段 但我无法在网上找到如何做到这一点,

这是我的改造界面:

public interface retrofitApi {

    String baseUrl = "http://192.168.137.1:3003/";

    @GET("api/radBox/getDegrees")
    Call<ResponseBody> getCallData();

    //Call<degreesModel> getCallData();


    class Factory {
        private static retrofitApi service;

        public static retrofitApi getInstance() {
            if (service == null) {
                Retrofit retrofit = new Retrofit.Builder()
                        .baseUrl(baseUrl)
                        .addConverterFactory(GsonConverterFactory.create())
                        .build();

                service = retrofit.create(retrofitApi.class);
                return service;
            } else {
                return service;
            }

        }
    }


}

这是我的回复:

 retrofitApi.Factory.getInstance().getCallData().enqueue(new Callback<ResponseBody>() {
            @Override
            public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {


//HERE I WANT TO DO RESPONSE.BODY.SOMEHING ?
//HERE I WANT TO DO RESPONSE.BODY.SOMEHING ?


 @Override
            public void onFailure(Call<ResponseBody> call, Throwable t) {
                Log.d("myLogs", "failed to Retrive Data");
                Log.d("myLogs", "becouse: "+t);
                largeTextVar.setText("failed: " + t);
            }
        });


    }

我的json看起来像这样:

{
  "data": {
    "sector": [
      [
        {
          "scanned": false,
          "sectorOne": "",
          "sectorTwo": "",
          "sectorThree": ""
        },
        {
          "scanned": false,
          "sectorOne": "",
          "sectorTwo": "",
          "sectorThree": ""
        }
      ]
    ]
  },
  "curserLocation": {
    "elevation": 30,
    "horizontal": 105
  }
}

如何从响应中访问我的json中的一个字段?

THNX ALLOT !!

1 个答案:

答案 0 :(得分:0)

您应该定义一些类来访问您的字段。在您的情况下,将您的响应转换为适当的类,并使用getter方法访问它们。 (你可以找到自动转换器here,但我建议你自己做)

此外,this网站可以让您了解您的课程应该如何。