java - Jackson 如何在自定义序列化器/反序列化器中检索父 bean

标签 java json serialization 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 ??
    }
}

在这里,我想在我的序列化程序中获取 Foo,而不必在 Bar 中引用。

最佳答案

如果您使用的是 Jackson 2.5,则可以通过 JsonGenerator.getCurrentValue() 访问父对象。或者,通过 getOutputContext()(它有 getParent() 以及 getCurrentValue() 方法)在层次结构中更上一层楼。 这也可以通过 JsonParser 用于自定义反序列化器。

关于java - Jackson 如何在自定义序列化器/反序列化器中检索父 bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30621562/

相关文章:

java - 如何使用 iText 在 JSP 中显示有限页数的 PDF 文件?

java - 在整个 Activity 过程中改变音量

java - 无法找到或加载主类 org.junit.runner.JUnitCore

ios - 在 IOS 中过滤 JSON 数据中的子数据

java - 如何在android中停止jsonParser.makeHttpRequest

.net - 使用 XmlSeralizer 在 C# 中解析稍微不正常的 XML

django - 将请求上下文从 Django Rest Framework 中的 Viewset 传递到序列化程序

java - 什么是父类(super class)型方法?

php - 如何使用 json,jquery ajax 从 php 获取两个数组?

c# - 使用不带属性的 Newtonsoft.Json 序列化和反序列化自定义类型