Java Jackson JSON反序列化列表

Java Jackson JSON反序列化列表,java,json,jackson,Java,Json,Jackson,我想对两种消息使用相同的POJO来反序列化一个JSONstring。请看下面的消息 { "success": true, "data": [ { "id": 2, "comments": null }, { "id": 3, "comments": null } ] } 数据是一个数组,但有时数据是单个对象: { "success": true, "data": { "id"

我想对两种消息使用相同的POJO来反序列化一个
JSON
string
。请看下面的消息

{
"success": true,
"data": [
    {
        "id": 2,
        "comments": null
    },
    {
        "id": 3,
        "comments": null
    }
]
}
数据是一个数组,但有时数据是单个对象:

{
"success": true,
"data":
    {
        "id": 2,
        "comments": null
    }
}
我的POJO看起来像这样:

public void setData(List<Object> data)
{
    this.data = data;
}
public void setData(列表数据)
{
这个数据=数据;
}
是否有任何方法可以使用同一类反序列化第二条消息(其中数据不是数组)

亲切问候,,
Ricardo

我没有使用它,但是有一个反序列化功能,允许在反序列化时使用它:

接受\u单个\u值\u作为\u数组(默认值:false)

允许从非JSON数组值自动转换为单元素数组和集合(添加隐式“数组包装器”):这有时是互操作性所必需的,因为某些库和框架在序列化单元素数组时忽略了JSON数组

看起来序列化也是相反的(将单元素数组写入非JSON数组)

展开单个值数组(默认值:false)(从2.4开始)

允许从单元素数组自动转换为非JSON数组值:这类似于ACCEPT_single_VALUE_AS_array功能,但工作方式相反(即,如果绑定属性不是数组或集合,则JSON中的单值数组可以绑定到该属性)。如果JSON值在数组中包含多个元素,反序列化仍将失败

我不确定是否有一种方法可以为特定领域做到这一点。这似乎是一种全有或全无的事情


希望这有帮助!

我还没有使用过它,但有一个反序列化功能允许在反序列化时使用此功能:

接受\u单个\u值\u作为\u数组(默认值:false)

允许从非JSON数组值自动转换为单元素数组和集合(添加隐式“数组包装器”):这有时是互操作性所必需的,因为某些库和框架在序列化单元素数组时忽略了JSON数组

看起来序列化也是相反的(将单元素数组写入非JSON数组)

展开单个值数组(默认值:false)(从2.4开始)

允许从单元素数组自动转换为非JSON数组值:这类似于ACCEPT_single_VALUE_AS_array功能,但工作方式相反(即,如果绑定属性不是数组或集合,则JSON中的单值数组可以绑定到该属性)。如果JSON值在数组中包含多个元素,反序列化仍将失败

我不确定是否有一种方法可以为特定领域做到这一点。这似乎是一种全有或全无的事情


希望这有帮助!

第二条消息不是应该有一个包含一个元素的数组吗?第二条消息不是应该有一个包含一个元素的数组吗?谢谢loesak!工作得很好!谢谢loesak!工作得很好!