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