Gson反序列化 - 属性可能是数组或单个对象

时间:2016-07-29 16:03:18

标签: java json deserialization json-deserialization android gson

使用Gson(Android)反序列化外部web-api我偶然发现了一个问题。

属性A是一个对象列表,如下:

{
    A: [
       { /* object */ },
       { /* object */ },
    ]
}

但是当A只包含一个对象时,API会将其作为单个对象返回,如下所示:

{
    A: { /* object */ }
}

在我的目标课程中,A定义如下:

public class Foo {
    private AObject[] A;
}

这适用于属性是正确的数组但是单个对象版本的以下异常失败时:

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

将属性反序列化为只包含一个项的数组的简单方法是什么?或者我必须循环响应并在反序列化之前更改它?

由于

0 个答案:

没有答案