为什么 Retrofit reponse.body().toString() 不显示响应中的 JSON?

Why does Retrofit reponse.body().toString() not display the JSON from response?

我正在调用 Retrofit:

RetrofitInterfaces.IGetEvent service = RetrofitClientInstance.getRetrofitInstance().create(RetrofitInterfaces.IGetEvent.class);
        Call<ResponseBody> call = service.listRepos("1", "9e028aaa-d265-4e27-9528-30858ed8c13d");
        call.enqueue(new Callback<ResponseBody>() {
            @Override
            public void onResponse(@NonNull Call<ResponseBody> call, @NonNull Response<ResponseBody> response) {
                Log.d(TAG, "onResponse: URL: " + response.raw().request().url());
                if(response.isSuccessful() && response.body() != null){
                    Log.d(TAG, "onResponse: " + response.body().toString());
                }
            }

            @Override
            public void onFailure(@NonNull Call<ResponseBody> call, @NonNull Throwable t) {
                Log.d(TAG, "onFailure: Error: " + t);
            }
        });

但是 return 日志如下:okhttp3.ResponseBody@fcf58e0

但是当我这样做时

try {
   System.out.println(response.body().string());
} catch (IOException e) {
   e.printStackTrace();
}

它 return 是我 JSON {"server_time":1580949319,"event_info":[{"e_id":1

为什么第一个不是 return JSON 字符串?

Why does the first one not return the JSON String?

因为您正在调用 toString(),而在您的第二个代码段中,您正在调用 string()string() returns JSON。 toString(),在这种情况下,returns 是 Object class 上定义的默认实现,它是 class 名称和对象 ID 的错位组合。