2

我正在使用 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 序列化器来输出类的名称呢?

4

1 回答 1

2

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

于 2013-03-22T09:46:55.140 回答