Tag: 序列化器

jackson – 结合@JsonValue和@JsonSerialize

我正在尝试@JsonValue和@JsonSerialize的组合。 让我们从我当前的容器类开始: public class Container { private final Map data; @JsonValue @JsonSerialize(keyUsing = SomeKeySerializer.class) public Map data() { return data; } } 在这种情况下,不使用自定义序列化程序SomeKeySerializer 。 如果我按如下方式更改容器,则会调用序列化程序: public class Container { @JsonSerialize(keyUsing = SomeKeySerializer.class) private final Map data; } 但是,这不是我想要的,因为这会在输出JSON中引入另一个“数据”级别。 是否有可能以某种方式组合@JsonValue和@JsonSerialize ? 我总是可以为Container编写另一个自定义序列化程序,它或多或少与@JsonValue背后的function相同。 在我看来,这或多或少都是黑客攻击。 jackson版本:2.6.2