gpt4 book ai didi

java - 如何使用父类在 Spring Rest Controller 具体类中返回?

转载 作者:行者123 更新时间:2023-12-02 02:09:08 24 4
gpt4 key购买 nike

我有一个 A 类和两个 B 类和 C 类,它们是 A 的具体类

class A {
private int id;
//get/set
}

class B extends A {
private String attributeB;
//get/set
}

class C extends A {
private String attributeC;
//get/set
}

class AService {
@Autowired
ADao aDao;
public List<A> list() {
return aDao.list();
}
}
class RestController {
@Autowired
AService aService;

@RequestMapping("api/a")
public List<A> list() {
return aService.list(); //Return a List<A> with A, B and C objects
}
}

当我使用 api(对“/api/a”的 http 请求)时,Json 看起来像

[
{ id: 1},
{ id: 2},
{ id: 3},
]

但是第二个和第三个是B和C对象,响应应该是

[
{ id: 1},
{ id: 2, attributeB: "B"},
{ id: 3, attributeC: "C"},
]

最佳答案

这对我有用

Controller

// mind the annotation here
@RestController
public class Controller {

@RequestMapping("api/a")
public List<A> list() {
List<A> listA = new ArrayList<A>();
listA.add(new A());
listA.add(new B());
listA.add(new C());
return listA;
}
}

输出:

[
{
"id": 0
},
{
"id": 0,
"attributeB": null
},
{
"id": 0,
"attributeC": null
}
]

jackson 库应该出现在类路径上以进行序列化/反序列化。
为了避免任何依赖性问题,请从 https://start.spring.io/ 下载示例项目,添加Web依赖并生成项目。

关于java - 如何使用父类在 Spring Rest Controller 具体类中返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50292299/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com