我正在使用一個Map<String, SetValuedMap<String, CustomerDomain>>. 我在調(diào)試時得到了正確的結(jié)果,但以下是我的控制器返回的結(jié)果。似乎杰克遜無法反序列化 SetValuedMap。{ "first": { empty:false }, "second": { empty:false }}
1 回答

回首憶惘然
TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超11個贊
這是因?yàn)閿?shù)據(jù)結(jié)構(gòu)Map
在反/序列化時需要一些特殊的邏輯,并且任何將 POJO 轉(zhuǎn)換為 JSON 的庫都對擴(kuò)展接口的對象有一些自己的處理Map
。
也SetValuedMap
需要這種處理,因?yàn)橹挡荒苤苯訌淖侄沃凶x取,而是可以使用put(..)
和get(..)
方法讀?。ㄒ?yàn)樗?中以相同的方式完成Map
)。
但是:SetValuedMap
不實(shí)現(xiàn)Map
接口。它在例如方法返回值類型方面有所不同put()
,因此在這個意義上它們是“不兼容的”。它是來自 Apache Commons 的實(shí)用程序類,而不是“標(biāo)準(zhǔn) Java”。
因此杰克遜可能不知道如何反序列化這個類。您可能需要為 - 例如 - 編寫自定義 de/serializer MultiValuedMap
。
添加回答
舉報
0/150
提交
取消