我想序列化一个对象,这样其中一个字段将根据字段的类型以不同的方式命名。例如:
public class Response {
private Status status;
private String error;
private Object data;
[ getters, setters ]
}
在这里,我希望将字段 data
序列化为类似 data.getClass.getName()
的字段,而不是总是有一个名为 data
的字段,它包含不同的类型,具体取决于情况.
我如何使用 Jackson 实现这样的技巧?
原文由 Tim 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用自定义
JsonSerializer
。然后,假设您要序列化以下两个对象:
第一个将打印:
第二个:
我使用名称
p
作为包装器对象,因为它仅用作p
花边架。如果你想删除它,你必须为 整个 类编写一个自定义序列化程序,即JsonSerializer<Response>
。