Return spring 引导中带有 fieldName 的对象数组
Return an array of objects with fieldName in spring boot
我是 springboot 的新手。我的要求如下。
我有 carModel class 如下。
@Data
public class CarModel {
private modelName;
private available;
}
现在我有一个 return 对象列表的休息端点。所以资源看起来像这样。
@GetMapping("/models")
public List<CarModel> getModels(){
//Resource Body
}
但是这个 return json 中的对象数组,没有字段名称。但我需要 json ,像这样:
{ "AllModels" : [ { "modelName" : "Ferrari", "available" : "Yes"} , {"modelName": "Tesla" , "available" : "Yes"} ]
如何在 spring 启动时执行此操作?我确实知道一个解决方案,方法是再定义一个包含 CarModel 对象列表的包装器 class。但是有没有更好的方法呢(比如任何注释等,)
谢谢!
您可以使用 Spring MVC 中已有的 ResponseEntity 方法。这样的东西对你有用吗?
@GetMapping("/models")
public ResponseEntity<List<CarModel>> getCars() {
List<CarModel> carModels = service.methodThatReturnsListOfCarModels();
return ResponseEntity.ok().body(new HashMap<>(){{put("AllModels", carModels);}});
}
我是 springboot 的新手。我的要求如下。 我有 carModel class 如下。
@Data
public class CarModel {
private modelName;
private available;
}
现在我有一个 return 对象列表的休息端点。所以资源看起来像这样。
@GetMapping("/models")
public List<CarModel> getModels(){
//Resource Body
}
但是这个 return json 中的对象数组,没有字段名称。但我需要 json ,像这样:
{ "AllModels" : [ { "modelName" : "Ferrari", "available" : "Yes"} , {"modelName": "Tesla" , "available" : "Yes"} ]
如何在 spring 启动时执行此操作?我确实知道一个解决方案,方法是再定义一个包含 CarModel 对象列表的包装器 class。但是有没有更好的方法呢(比如任何注释等,)
谢谢!
您可以使用 Spring MVC 中已有的 ResponseEntity 方法。这样的东西对你有用吗?
@GetMapping("/models")
public ResponseEntity<List<CarModel>> getCars() {
List<CarModel> carModels = service.methodThatReturnsListOfCarModels();
return ResponseEntity.ok().body(new HashMap<>(){{put("AllModels", carModels);}});
}