簡體   English   中英

Jackson JSON反序列化列表

[英]Jackson JSON Deserialization List

我想對兩種消息使用相同的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;
}

有沒有辦法使用相同的類反序列化第二條消息(數據不是數組)?

親切的問候,里卡多

我還沒有使用過它,但是有一個反序列化功能可以在反序列化上實現:

ACCEPT_SINGLE_VALUE_AS_ARRAY(默認值:false)

允許從非JSON數組值自動轉換為單元素數組和集合(添加隱式“數組包裝器”):有時對於互操作性是必要的,因為某些庫和框架在序列化單元素數組時會省略JSON數組。

看起來也有相反的序列化(將單個元素數組寫入非JSON數組

UNWRAP_SINGLE_VALUE_ARRAYS(默認值:false)(從2.4開始)

允許從單元素數組自動轉換為非JSON數組值:這類似於ACCEPT_SINGLE_VALUE_AS_ARRAY功能,但工作方式相反(即,如果綁定屬性不是數組或集合,則為單個值數組) JSON綁定到該屬性是可以接受的)。 如果JSON值在數組中包含多個元素,則反序列化仍將失敗。

參見https://github.com/FasterXML/jackson-databind/wiki/Deserialization-Features

我不確定是否可以針對特定領域執行此操作。 似乎是全有或全無的事情。

希望這可以幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM