Android 如何使我的改装模型类处理空属性?
我有一个模型类,它存储了通过改型API调用得到的JSON对象Android 如何使我的改装模型类处理空属性?,android,json,gson,realm,retrofit2,Android,Json,Gson,Realm,Retrofit2,我有一个模型类,它存储了通过改型API调用得到的JSON对象 // Java public class SampleClass extends RealmObject { @SerializedName("id") @Expose private Integer id; @SerializedName("value") @Expose private List<String> value; } // Json { "id"
// Java
public class SampleClass extends RealmObject {
@SerializedName("id")
@Expose
private Integer id;
@SerializedName("value")
@Expose
private List<String> value;
}
// Json
{
"id":1,
"value":["one", "two"]
}
当这种情况发生时,我得到这个异常
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was NULL
如何处理这个问题,使Java对象的值
字段默认为null
编辑:请注意,我将其与改装一起使用,因此其工作原理如下
{
"id":2,
"value":null
}
// Call to API
Call<SampleClass> call = apiService.getSampleClass();
call.enqueue(new Callback<SampleClass>() {
@Override
public void onResponse(Call<SampleClass> call, Response<SampleClass> response) {
// API Call was successful
}
@Override
public void onFailure(Call<Login> call, Throwable t) {
// Logging t.toString() shows the error above.
}
});
//调用API
Call Call=apiService.getSampleClass();
call.enqueue(新回调(){
@凌驾
公共void onResponse(调用、响应){
//API调用成功
}
@凌驾
失败时公共无效(调用调用,可丢弃的t){
//记录t.toString()会显示上述错误。
}
});
如果一个字段为空,调用总是在
onFailure
中到达。您的改型API接口不代表实际的响应类型(您等待列表,然后得到一个对象)@EpicPandaForce抱歉,我只是使用了一个SampleClass来说明问题的要点。我调好了,你好。你能对付他们吗?我可以知道你是如何克服它的吗?我也有同样的问题。感谢you@GulbalaSalamov不,对不起。我最后要求API的家伙只是发送空数组的情况下,而不是NULL。@ iSaaHJ非常感谢你,我也会考虑这个选项,当需要时。