Jackson:如何为包含该子对象作为字段的多个对象包含子对象的不同属性



我有两个类,它们都封装了同一个类,例如:

class A1 {
private Child child;
}
class B1 {
private Child child;
}
class Child {
private String a;
private String b;
}

是否可以将 jackson 配置为在序列化类 A1 时仅序列化类 Child 中的属性"a",在序列化类 B1 时仅序列化类 Child 中的属性"b" 例如:

Child child = new Child();
child.setA("a");
child.setB("b");
A1 a1 = new A1();
a1.setChild(child);
B1 b1 = new B1();
b1.setChild(child);

序列化 A1 时所需的输出:

{
"child": {
"a": "a",
}
}

序列化 B1 时所需的输出:

{
"child": {
"b": "b",
}
}

感谢您的时间和帮助!

使用自定义序列化实现扩展StdSerializer可以做到这一点。

调用序列化程序时,必须指定要序列化的参数。

https://www.baeldung.com/jackson-object-mapper-tutorial

最新更新