我有一个对象,它使用 aorg.apache.commons.collections.list.LazyList
作为它的一个字段,它是序列化的 ti 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 的默认构造函数 - 这是有道理的。但是我怎样才能指定如何反序列化这个字段呢?
错误信息:
[collection type; 没有默认构造函数;org.apache.commons.collections.list.LazyList 类,包含 [简单类型,类 foo.bar.MyObject]]
赏金限制:
要收集赏金,需要使用自定义杰克逊反序列化器来回答这个问题 - 自定义反序列化器不能是特定于字段的!因此,对于特定类型使用 LazyList 的自定义实现的任何解决方案都无法充分回答这个问题。