我有以下的JSON實現集合類:反序列化失敗與傑克遜
{
"item": [
{ "foo": 1 },
{ "foo": 2 }
]
}
這基本上是一個包含項目集合的對象。
所以我做了一個類來反序列化:
public class ItemList {
@JsonProperty("item")
List<Item> items;
// Getters, setters & co.
// ...
}
一切工作很好了這一點。
現在,爲了讓我的生活更容易在其他地方,我決定能夠迭代ItemList對象並讓它實現Collection接口會很好。
所以基本上我的課變成了:
public class ItemList implements Collection<Item>, Iterable<Item> {
@JsonProperty("item")
List<Item> items;
// Getters, setters & co.
// Generated all method delegates to items. For instance:
public Item get(int position) {
return items.get(position);
}
}
的實施工作正常,很好。然而,反序列化現在失敗了。
貌似傑克遜感到困惑:
com.fasterxml.jackson.databind.JsonMappingException:不能 反序列化com.example.ItemList的情況下進行START_OBJECT令牌
我有試圖添加@JsonDeserialize(as=ItemList.class)
但它並沒有伎倆。
什麼路要走?
我敢肯定,http://stackoverflow.com/users/22656/jon-skeet將能夠回答這個問題。另外,您可以在http://stackoverflow.com/a/21279016/1382251中找到一些有用的信息。 –
雖然這是一個很好的問題,但如果你只想迭代,爲什麼要讓你的類成爲一個集合,而不是隻能迭代? – chrylis
@chrylis:這樣我就可以爲(Item t:itemList)' –