gpt4 book ai didi

json - 使用 jackson 反序列化惰性列表

转载 作者:行者123 更新时间:2023-12-04 21:44:08 25 4
gpt4 key购买 nike

我有一个使用 org.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 的默认构造函数 - 这是有道理的。但是如何指定如何反序列化该字段?

错误信息:

No default constructor for [collection type; class org.apache.commons.collections.list.LazyList, contains [simple type, class foo.bar.MyObject]]



赏金限制:

要收集赏金,需要使用自定义 jackson 解串器回答这个问题 - 自定义解串器不能是特定于字段的!因此,对于特定类型使用 LazyList 的自定义实现的解决方案将无法充分回答这个问题。

最佳答案

下面的解决方案适用于 List 和 Map 集合对象,它也可能适用于您的。

@JsonDeserialize(contentAs=MyObject.class)
private List<MyObject> myObject = ListUtils.lazyList(new ArrayList(), {new MyObject()} as Factory);

关于json - 使用 jackson 反序列化惰性列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17366339/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com