[英]Json - replace field name in generic Dto with associated type name
我有通用的DTO类用于数据传输
public class CreateDto<E> {
private String id;
private String name;
private E e;
}
我的问题是使用ObjectMapper将对象转换为json时,我总是将json字符串作为
{id : 1, name : 2, e : {"state1":"value1" ...} };
我希望将e替换为特定的东西,如果它像CreateDto<Foo>
一样,我希望它like a foo:{"state1":"value1" ..}
,当它是CreateDto时应为bar: {"state2":"value2"..}
我想知道是否有一种方法可以使用批注或其他实用程序来实现。
认为,这与您所需的方式不同,相同的原理是在属性或方法(getter或setter)级别使用@JsonTypeInfo
批注。
以下示例(在属性级别);
public class CreateDto<E> {
private String id;
private String name;
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = As.PROPERTY, property = "type")
private E e;
...
}
将产生json字符串(例如E
Foo
)
{"id":"100","name":"john","e":{"type":"Foo","state1":"value1"...}}
现在,它在通用数据传输对象的基础类型上是独特的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.