gpt4 book ai didi

java - GetMapping 使用 Spring Boot 生成 CSV 文件

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:34:31 24 4
gpt4 key购买 nike

我正在编写一个 spring rest 方法来从数据库中获取详细信息并将其设置在响应 POJO 中,然后返回它。目前,当使用 POSTMAN 或 RC 像带有数据的可下载 CSV 文件一样点击 URL 时,我需要以 CSV 格式而不是默认 json 格式生成此响应。我用谷歌搜索了很多网站,但不确定其中的几个逻辑。

  1. 是否需要编写业务逻辑将 pojo 类值转换为 csv 格式,或者 spring 是否有任何转换机制?
  2. Produces = "text/csv"在很多地方都被提及,这个转换响应是否正确?

目前我还没有编写任何 CSV 转换代码。

@GetMapping("/batch/export" , produces="text/csv")
public ResponseEntity<ApplicationResponse> getBatchDetails(
HttpServletRequest request) {

ApplicationRequest appRequest = ApplicationServiceMapper.mapRequestFromHttpRequest(request);
ApplicationResponse response = appService.getDBDetails(appRequest);
return new ResponseEntity<>(response, HttpStatus.OK);

}

这里的 response 是服务以其 pojo 格式返回的所有数据,如果我们不在注释中给出 produces 那么默认情况下 spring 将返回 response json。有人可以指导我吗?提前致谢。

最佳答案

仅仅使用 @GetMappingproduces="text/csv" 是不够的。它只负责设置响应头Content-Type: text/csv

您需要将响应添加为参数 HttpServletResponse response,将您的 POJO 转换为有效的 csv 文件,然后才可以,将csv文件写入HttpServletResponse

关于java - GetMapping 使用 Spring Boot 生成 CSV 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45729383/

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