在自定义序列化器/反序列化器中,有没有办法检索字段的父bean?
例如:
ColorStateList
在这里,我想在我的序列化程序中获取Foo而不在Bar中有参考。
答案 0 :(得分:7)
如果您使用的是Jackson 2.5,则可以通过JsonGenerator.getCurrentValue()
访问父对象。或者,在层次结构的更上方,通过getOutputContext()
(具有getParent()
和getCurrentValue()
方法)。
对于自定义反序列化程序,也可通过JsonParser
使用。
答案 1 :(得分:4)
对于反序列化,您无法访问JsonGenerator
对象。以下对我有用:
JsonStreamContext parsingContext = jsonParser.getParsingContext();
JsonStreamContext parent = parsingContext.getParent();
Object currentValue = parent.getCurrentValue();
答案 2 :(得分:0)
注意:如果使用自定义序列化
,则getCurrentValue将为null我通过将父对象设置为子级的序列化程序实例,然后在杰克逊调用子级序列化程序时访问它来解决这个问题。