我有一个对象,其中一个字段使用了org.apache.commons.collections.list.LazyList
,它被序列化为JSON。JSON的格式如下:
"myObject": ["org.apache.commons.collections.list.LazyList", [
{
"attr1": "asdasd",
"attr2": 1234
}
]],
对象字段看起来像这样:
List<MyObject> myObject = ListUtils.lazyList(new ArrayList(), {new MyObject()} as Factory)
然而,尝试使用Jackson ObjectMapper反序列化上述JSON会失败,因为它找不到LazyList的默认构造函数 - 这是有道理的。但是我该如何指定如何反序列化此字段呢?
错误信息:
没有默认构造函数[集合类型;类org.apache.commons.collections.list.LazyList,包含[简单类型,类foo.bar.MyObject]]
赏金限制:
为了收集赏金,必须使用自定义的Jackson反序列化器来回答此问题 - 自定义反序列化器不能是特定于字段的! 因此,没有使用LazyList的特定类型的自定义实现解决此问题。