我有两个类,它们都封装了同一个类,例如:
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