2017-05-16 36 views
3

使用的JSONObject當我使用的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()); 
      } 
     }); 

但是當我使用對象爲在改造的響應我的輸出是:

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的。我的錯誤在哪裏?

+1

檢查此https://github.com/marcinOz/Retrofit2JSONConverterFactory – Saurabh

回答

0

請使用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(); 
    }