[英]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.