当我在改造中使用 JsonObject 时,响应为 Null



当我在改造中使用 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 在您想要的对象中获取解析的响应,如果您希望使用改造的字符串响应,请使用 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();
    }

相关内容

  • 没有找到相关文章

最新更新