【问题标题】:How to use custom id serializer with Jackson?如何在 Jackson 中使用自定义 id 序列化程序?
【发布时间】:2013-03-22 08:34:02
【问题描述】:

我正在使用 Jackson 2.1.4 并希望序列化扩展 Event 类的对象集合,并且 JSON 必须包含类名以实现多态性。我在 Event 上放了一个@JsonTypeInfo 注释,但不幸的是我不能使用 CLASS 作为策略,因为我的对象实例化模式是“new FooEvent(){{bar=someValue;}}”,它将创建匿名内部类。我想将“FooEvent”作为 JSON 中的类型,而不是匿名内部类。

看来我需要这样做:

@JsonTypeInfo(use= JsonTypeInfo.Id.CUSTOM, include= JsonTypeInfo.As.PROPERTY, property="type")

但是如何注册我自己的自定义 id 序列化器来输出类的名称?

【问题讨论】:

    标签: serialization jackson


    【解决方案1】:

    想出了如何解决这个问题:基本上在与@JsonTypeInfo 相同的类上添加@JsonTypeIdResolver 注释,然后实现它可以引用的解析器。 Here's 我的样子。它本质上只是删除匿名内部类(如果存在)。

    【讨论】:

    • 嗨,瑞卡德!不幸的是,您的示例不再在线,当我尝试提出自己的版本(扩展TypeIdResolverBase)时,我在运行时遇到异常,因为没有可用的空构造函数,所以无法实例化。任何帮助将不胜感激!
    猜你喜欢
    • 2011-11-01
    • 2018-12-19
    • 1970-01-01
    • 2014-08-02
    • 1970-01-01
    • 2019-08-10
    • 2016-01-11
    • 2013-10-10
    • 2017-03-02
    相关资源
    最近更新 更多