我有一个像这样的POJO:
class Wrapper,T> {
private int count;
private T data;
// getters setters
}
使用Jackson将其转换为JSON时,json类似于:
{
count:1,
**data**:{}
}
我需要根据类名T或与类名相关的其他值来更改数据键,我该如何实现。请提出建议。谢谢。
问题来源:Stack Overflow
使用自定义序列化程序,您可以执行任何所需的操作,因为您可以完全控制序列化过程。参见例如https://www.baeldung.com/jackson-custom-serialization。
您的serialize方法如下所示:
@Override
public void serialize(
Wrapper<?> value, JsonGenerator jgen, SerializerProvider provider)
throws IOException, JsonProcessingException {
String derivedName = value.getClass().getSimpleName() + "Data"; // just an example
jgen.writeStartObject();
jgen.writeNumberField("count", value.getCount());
jgen.writeObjectField(derivedName, value.getData());
jgen.writeEndObject();
}
回答来源:Stack Overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。