我在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"..}
我想知道是否有办法使用注释或其他一些工具来获取它。
答案 0 :(得分:0)
认为,这与您的要求不同,同样的原则是在属性或方法(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字符串(例如Foo
的{{1}})
E
现在,它与通用数据传输对象的基础类型截然不同。