ago*_*st_ 5 java serialization json jackson
在自定义序列化器/反序列化器中,有没有办法检索字段的父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 ??
}
}
Run Code Online (Sandbox Code Playgroud)
在这里,我想在我的序列化器中获取Foo而不在Bar中有引用.
如果您使用的是Jackson 2.5,则可以通过访问父对象JsonGenerator.getCurrentValue().或者,进一步向上层次结构,去经由getOutputContext()(其具有getParent()和getCurrentValue()方法).这也适用JsonParser于自定义反序列化器.
对于反序列化,您无权访问该JsonGenerator对象。以下为我工作:
JsonStreamContext parsingContext = jsonParser.getParsingContext();
JsonStreamContext parent = parsingContext.getParent();
Object currentValue = parent.getCurrentValue();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3116 次 |
| 最近记录: |