gpt4 book ai didi

java - 给定一个类,如何获取类序列化的jackson结构?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:14:27 24 4
gpt4 key购买 nike

给定一个任意类,Jackson 是否可以提供序列化和反序列化所需的字段列表?

jackson serialization rules很复杂。我想在运行时确定任意类(序列化和反序列化)期望的 Jackson JSON 结构。我目前计划的实现是寻找一个 @JsonConstructor 构造函数方法并解析它的参数。如果不存在,请查找其他方法的注释,否则,使用成员变量列表。我将为任何非原始字段类型递归该算法。

最终目标是为服务端点创建文档。

最佳答案

是的,您可以使用 Jackson 的内省(introspection)。这样做的好处是所有注释都按预期应用,结果应该与 Jackson“看到”您想要的信息类型完全一样。

至少有两种方法可以做到这一点:

  1. 通过SerializationConfig(或DeserializatonConfig)请求自省(introspection),以获得BeanDescription
  2. 通过调用 ObjectMapper.acceptJsonFormatVisitor(type, visitor) 使用基于回调/访问者的方法

第一种方法通常更简单:

JavaType type = mapper.constructType(MyBean.class);
BeanDescription desc = mapper.getSerializationConfig()
.introspect(type);

但后者对于生成模式(JSON 模式、XML 模式、protoc、thrift)等任务很有用。

关于java - 给定一个类,如何获取类序列化的jackson结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38254621/

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