有没有办法通过Field提交Log Gson解析?日志应打印已归档的名称和响应中收到的相应值。 示例:模型类看起来像这样
public class Item{
@SerializedName("ItemCode")
@Expose
private String ItemCode;
@SerializedName("ItemSN")
@Expose
private String ItemSN;
@SerializedName("ItemDesc")
@Expose
private String ItemDesc;
--getter setter methods--
}
如果回复如下:
{
"ItemCode":"A12"
"ItemSN":"123455672"
"ItemDesc":"Google Pixel"
}
在Gson
解析时,应生成以下日志
ItemCode是A12
ItemSN是123455672
ItemDesc是Google Pixel
我希望这可以解决以下问题。如果任何其他解决方案适用于此类问题,请建议。
我的应用程序的一个API(比如init API)返回我使用Retrofit-Gson-RxJava解析的JSON响应,我们有两个环境设置Test和Prod for prod环境响应被成功解析但是对于测试环境我得到了NumberFormatException
显然告诉我们某些Numeric
字段的回复值为Numeric
。
由于响应的大小很大,因此很多对象彼此嵌套,因此很难找到解析失败的确切字段。
答案 0 :(得分:0)
添加HttpLoggingInterceptor:compile" com.squareup.okhttp3:logging-interceptor:3.3.1"
public static Retrofit getInstance() {
if (instance == null) {
HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
logging.setLevel(HttpLoggingInterceptor.Level.BODY);
OkHttpClient.Builder httpClient = new OkHttpClient.Builder();
httpClient.addInterceptor(logging); // <-- this is the important line!
instance = new Retrofit.Builder().baseUrl(Constant.BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.client(httpClient.build())
.build();
}
return instance;
}