【发布时间】:2019-04-30 01:30:52
【问题描述】:
我正在使用Spring-MVC,并且我有一个如下结构的 DTO,用于从客户端(foo 实体)接收JSON 数据,并使用JPA 将其保存到数据库中:
public class FooDTO {
public Integer id;
public String label;
public Double amount;
public List<Integer> states;
...
但是当客户想要编辑foo 实体时,我必须像下面这样构造它
public class FooDTO {
public Integer id;
public String label;
public Double amount;
public List<SimpleDto> states;
...
与SimpleDto
public class SimpleDto {
public Integer value;
public String label;
}
区别只是 states 类型,它有时是 List<SimpleDto>,有时是 List<Integer> 我不想创建另一个 dto。
那么如何在我的 dto (json) 中实现动态字段类型?
P.S JSON数据由com.fasterxml.jackson.core处理
【问题讨论】:
-
我不明白。只需将其设为
Object并使用简单的instance of,为什么这么复杂? -
@Eugene 是的
instance of对于原始类型,但对于我的SimpleDto,我认为我必须使用 @ManojRamanan 吗? -
你知道
instanceOf是做什么的吗?你说你有SimpleDtovsInteger。我也不明白你为什么不创建另一个 DTO,它并不复杂。 -
@Eugene 我不想重复自己,因为我的 DTO 有很多共享属性。
-
在这种情况下,创建一个具有共享字段的公共类和扩展该字段的两个新类。
标签: java spring spring-mvc jackson