如何使用 Retrofit 获取 JSON 对象?

How to get JSON object using Retrofit?

我正在尝试使用 Retrofit 阅读此 JSON,但我收到此错误 Could not locate ResponseBody converter for class org.json.JSONObject.

ALE2文件中的JSON

{
   "a1":[...],
   "a2":[...],
   "a3":[...]
}

代码

Retrofit retrofit = new Retrofit.Builder().baseUrl(Constants.BASE_URL).build();
retrofit.create(RetrofitInterface.class).getData().enqueue(new Callback < JSONObject > () {
    @Override
    public void onResponse(Call < JSONObject > call, Response < JSONObject > response) {

    }

    @Override
    public void onFailure(Call < JSONObject > call, Throwable t) {

    }
});

RetrofitInterface

public interface RetrofitInterface {

    @GET("ALE2")
    Call<JSONObject> getData();

}

我不想将它们存储在任何模型中我只想将 JSON 作为字符串

您的界面应如下所示:

public interface RetrofitInterface {
    @GET("ALE2")
    Call<ResponseBody> getData();
}

要获取原始 json 对象 return 类型应为 Call<ResponseBody> 一旦响应完成,您就可以像下面这样处理它:

retrofit.create(RetrofitInterface.class).getData().enqueue(new Callback<ResponseBody> () {
        @Override
        public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
            String responseBody = response.body().string();
            JSONObject json = new JSONObject(responseBody);
        }

        @Override
        public void onFailure(Call<ResponseBody> call, Throwable t) {

        }
    });

这是在 JSON 对象中设置字符串的方法。