gpt4 book ai didi

java - 如何让 jackson 在反序列化期间将所有类似 map 的节点转换到我的自定义类?

转载 作者:搜寻专家 更新时间:2023-11-01 03:20:14 27 4
gpt4 key购买 nike

我有一个实现 Map<String, Object> 的类接口(interface):

public class TypedObject implements Map<String, Object>, Serializable {...}

TypedObject 的实例可能包含另一个实例 TypedObject作为值(value)等等。

默认情况下, jackson 的 ObjectMapper将任何类似 map 的记录反序列化为 LinkedHashMap .我希望它将任何子 map 反序列化为 TypedObject .

我知道我可以实现自己的反序列化器,但在我看来还有一种更简单的方法。

那我怎么通知ObjectMapper我想要什么?

示例:

{"child":{"name":"son","child":{"name":"grandson"}}}

应该反序列化为TypedObject ,其中包含另一个 TypedObject值,其中还包含一个 TypedObject值(value)。

最佳答案

一种方法是指定从抽象类型 MapTypedObject 的映射。这可以通过构建 SimpleModule、调用其“addAbstractTypeMapping(...)”方法、使用 ObjectMapper 注册模块来完成。

为此,TypedObject 必须有一个可用的零参数构造函数。

关于java - 如何让 jackson 在反序列化期间将所有类似 map 的节点转换到我的自定义类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32503322/

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