繁体   English   中英

子类的Java Spring Web Serialize属性

[英]Java Spring Web Serialize properties of child class

我有一个要在其中执行的Maven Java Spring Rest项目。

@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;}

我希望结果是

[

{id:1,lang:“ Java”},// <-这是开发人员

{id:2,env:“ Linux”},// <-这是DevOps

]

不只是

[

{id:1},// <-这是开发人员

{id:2},// <-这是DevOps

]

试图重现您的问题,但未成功:

@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;
    }
}

结果:

http://localhost:8080/person/

[{"id":1,"lang":"Java"},{"id":2,"env":"Linux"}]

您确定张贴了所有相关代码吗? 既然您Let's say I have the constructor ,那么我只能假设您正确创建了它们。

我找到了解决方案,在我的现实生活中,专有财产是私人的,我忘记了制造吸气剂。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM