Spring Boot Rest 控制器:在 return 类型中添加文本

Spring Boot Rest controller: adding text in the return type

我有一个 SpringBoot 应用程序。使用 RestController

@RestController
@RequestMapping("/api/aggreg")
public class AggregRestController  {

@GetMapping("/list")
    public List<AggregCalcTrainsXCompany> aggregList  ()
            throws IOException, URISyntaxException, DataAccessException, SQLException {

        return aggregService.findAll();
    }
}

因为我想在 DataTable ajax 调用中使用这个控制器,所以我需要在开头添加这段代码:

{
  "data":

和最后的}让它工作,但我不知道这是否可能

您有两个选择:

  1. 使用 data 字段和 return 将您的列表包装到 class 中:

    class Result {
        List<AggregCalcTrainsXCompany> data;
    }
    
  2. (如评论所建议)Return Map<String, List<AggregCalcTrainsXCompany>>

正如我评论的那样,您只需要 return 一个 Map 而不是 List<AggregCalcTrainsXCompany>:

@RestController
@RequestMapping("/api/aggreg")
public class AggregRestController  {

    @GetMapping("/list")
    public Map<String, List<AggregCalcTrainsXCompany>> aggregList  ()
            throws IOException, URISyntaxException, DataAccessException, SQLException {
        Map<String, List<AggregCalcTrainsXCompany>> m = new HashMap<>();
        m.put("data", aggregService.findAll());

        return m;
    }
}

地图将被序列化为

{
   "data" : <here the result from your aggregtation> 
}