如何让我的Retrofit模型类处理NULL属性?

时间:2016-11-27 12:13:23

标签: android json gson realm retrofit2

我有这个模型类,它使用Retrofit来存储我的API调用中的JSON对象。

// 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"]
}

在某些情况下,JSON对象不会有values,并且会出现这样的情况。

{
    "id":2,
    "value":null
}

当发生这种情况时,我得到了这个例外。

com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was NULL

如何处理此问题,以便Java对象的value字段默认为null

编辑:请注意,我在Retrofit中使用它,所以它的工作原理如下。

    // 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.
        }
    });

如果字段为NULL,则调用始终位于onFailure

0 个答案:

没有答案