在自定义序列化器/反序列化器中,有没有办法检索字段的父 bean?
例如:
public class Foo {
@JsonSerialize(using = MyCustomSerializer.class)
public Bar bar;
}
public class Bar { }
public class MyCustomSerializer extends JsonSerializer<Bar> {
@Override
public void serialize(
Bar value,
JsonGenerator jgen,
SerializerProvider serializers)
throws IOException, JsonProcessingException
{
// get Foo ??
}
}
在这里,我想在我的序列化程序中获取 Foo
,而不必在 Bar
中引用。
最佳答案
如果您使用的是 Jackson 2.5,则可以通过 JsonGenerator.getCurrentValue()
访问父对象。或者,通过 getOutputContext()
(它有 getParent()
以及 getCurrentValue()
方法)在层次结构中更上一层楼。
这也可以通过 JsonParser
用于自定义反序列化器。
关于java - Jackson 如何在自定义序列化器/反序列化器中检索父 bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30621562/