当我在改造中使用 JsonObject 作为响应时,我的输出是:response: {}
这是我的 JsonObject 响应代码:
mCall=apiService.Check_App_Version("api/check-app-version/1/"+Utility.Get_App_Version(context));
mCall.enqueue(new Callback<JSONObject>() {
@Override
public void onResponse(Call<JSONObject> call, Response<JSONObject> response) {
Log.e("response",""+response.body().toString()+" "+response.code());
}
@Override
public void onFailure(Call<JSONObject> call, Throwable t) {
Log.e("ERROR",t.toString());
}
});
但是当我在改造中使用 Object 作为响应时,我的输出是:
response: {data=[{result=1.0, is_necessary=0.0}]}
这里是代码:
mCall=apiService.Check_App_Version("api/check-app-version/1/"+Utility.Get_App_Version(context));
mCall.enqueue(new Callback<Object>() {
@Override
public void onResponse(Call<Object> call, Response<Object> response) {
Log.e("response",""+response.body().toString()+" "+response.code());
}
@Override
public void onFailure(Call<Object> call, Throwable t) {
Log.e("ERROR",t.toString());
}
});
我想将其用作 JsonObject。我的错误在哪里?
最佳答案
请使用 GsonConverterFactory 在您想要的对象中获取已解析的响应,如果您希望使用 Retrofit 进行字符串响应,请使用 ScalarsConverterFactory。您可以同时添加这两个工厂。
OkHttpClient client = new OkHttpClient.Builder().connectTimeout(3, TimeUnit.MINUTES)
.writeTimeout(3, TimeUnit.MINUTES)
.readTimeout(3, TimeUnit.MINUTES).addInterceptor(interceptor).build();
if (retrofit == null) {
String baseUrl = "http://example.com/";
retrofit = new Retrofit.Builder()
.baseUrl(baseUrl)
.addConverterFactory(GsonConverterFactory.create())
.addConverterFactory(ScalarsConverterFactory.create())
.client(client)
.build();
}
关于android - 当我在改造中使用 JsonObject 时,响应为 Null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43995346/