我有一个 POJO,我正在尝试使用 Jackson 进行 ser/deser。但是,我希望该类提供自己的 ser/deser 逻辑。所以我可以写这样的东西:
@JsonDeserialize(using = MyClass.class)
@JsonSerialize(using = MyClass.class)
class MyClass ... {
private String x;
private String y;
// getters and setters
void serialize(MyClass object, JsonGenerator jsonGenerator,
SerializerProvider serializerProvider) throws IOException {
....
}
MyClass deserialize(JsonParser jsonParser,
DeserializationContext deserializationContext) throws IOException {
....
}
}
我不想编写两个类来为我定义的每个 POJO 提供 ser / deser 逻辑。
- 鉴于 JsonSerializer 和 JsonDeserializer 是抽象类而不是接口,我可以使用任何类型的代理机制来实现这一点吗?
- 这是否违反了良好的做法?
初步研究:
- 堆栈溢出问题
- 本次讨论。