【发布时间】:2014-08-26 15:31:32
【问题描述】:
我想在 JSON 序列化之前更改一个对象。为此,我创建了一个带有更改方法的接口,任何实现此接口的类都将“尝试”更改自身。 (是的,可能这样做不是最优的,但例如清酒会这样做)
@JsonSerialize(using = ChangesValuesSerializer.class)
public interface ChangesValues {
void changeValues();
}
现在,是ChangesValuesSerializer 类,我正在实现serialize 方法。并且想知道,我怎么说杰克逊,称它是内置在对象上的序列化程序。
class ChangesValuesSerializer extends JsonSerializer<ChangesValues> {
@Override
public void serialize(ChangesValues changesValues, JsonGenerator jsonGenerator,
SerializerProvider serializerProvider) throws IOException,
JsonProcessingException {
changesValues.changeValues();
// ***
// ->> Just call Jacksons default serializer
// ***
}
}
【问题讨论】:
-
super() 不能解决问题吗?
-
这是抽象方法
-
我的方式有点“hackish”,但你可以在这里查看:stackoverflow.com/questions/25511604/… 它更干净,可以在更广泛的应用程序中使用。
标签: java json serialization jackson