Java Spring Web序列化子类的属性
我有一个Maven Java Spring Rest项目,我想在其中完成这项工作Java Spring Web序列化子类的属性,java,spring,rest,inheritance,Java,Spring,Rest,Inheritance,我有一个Maven Java Spring Rest项目,我想在其中完成这项工作 @RestController @RequestMapping("/person") public class PersonController { @GetMapping public List<Person> getPerson(){ List<Person> persons = new ArrayList<>(); persons.add(new
@RestController
@RequestMapping("/person")
public class PersonController {
@GetMapping
public List<Person> getPerson(){
List<Person> persons = new ArrayList<>();
persons.add(new Dev(1, "Java")); //Let's say I have the constructor
persons.add(new DevOps(2, "Linux")); //Let's say I have the constructor
return implants;
}
}
public class Person{ public int id;}
public class Dev extends Person{ public string lang;}
public class DevOps extends Person{ public string env;}
@RestController
@请求映射(“/人”)
公共类个人控制器{
@GetMapping
公共列表getPerson(){
List persons=new ArrayList();
add(newdev(1,“Java”);//假设我有构造函数
persons.add(newdevops(2,“Linux”);//假设我有构造函数
回植体;
}
}
公共类人物{public int id;}
公共类Dev扩展Person{public string lang;}
公共类DevOps扩展Person{public string env;}
我希望结果是
[
{id:1,lang:“Java”},//试图重现您的问题,但未成功:
@RestController
@RequestMapping("/person")
public class PersonController {
@GetMapping
public List<Person> getPerson(){
List<Person> persons = new ArrayList<>();
persons.add(new Dev(1, "Java")); //Let's say I have the constructor
persons.add(new DevOps(2, "Linux")); //Let's
return persons;
}
}
public class Person {
public int id;
public Person(int id) {
this.id = id;
}
}
public class Dev extends Person {
public String lang;
public Dev(int id, String lang) {
super(id);
this.lang = lang;
}
}
public class DevOps extends Person {
public String env;
public DevOps(int id, String env) {
super(id);
this.env = env;
}
}
你确定你发布了所有相关的代码吗?既然你声明了
让我们假设我有构造函数
,我只能假设你正确地创建了它们。我找到了解决方案,在我的现实生活示例中,属性是私有的,我忘记了创建getter。也发布你的类构造函数
http://localhost:8080/person/
[{"id":1,"lang":"Java"},{"id":2,"env":"Linux"}]