获取数据,转换成JSON,返回到前端页面
来源:豆包
获取数据,转换成JSON
import com.alibaba.fastjson.JSON; import java.io.FileWriter; public class FastJsonExport { public static void main(String[] args) throws Exception { User user = new User(); user.setName("李四"); user.setAge(30); // 方式1:转为JSON字符串 String jsonStr = JSON.toJSONString(user); System.out.println(jsonStr); // 输出:{"age":30,"name":"李四"} // 方式2:写入文件 FileWriter writer = new FileWriter("user_fast.json"); writer.write(jsonStr); writer.close(); } }
将上面方法进行改造:获取数据,转换成JSON,返回到前端页面
import com.alibaba.fastjson.JSON; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletResponse; import java.io.OutputStream; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; @RestController public class FastJsonExportController { // 前端访问该接口即可触发下载 @GetMapping("/download/userJson") public void downloadUserJson(HttpServletResponse response) throws Exception { // 1. 构造数据(和原代码一致) User user = new User(); user.setName("李四"); user.setAge(30); String jsonStr = JSON.toJSONString(user); // 2. 设置响应头,告诉浏览器这是下载文件 response.setContentType("application/json;charset=UTF-8"); response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("user_fast.json", "UTF-8")); // 3. 写入响应流(无需本地文件,直接返回给前端) try (OutputStream os = response.getOutputStream()) { os.write(jsonStr.getBytes(StandardCharsets.UTF_8)); os.flush(); } } // 需确保 User 类有 getter/setter(或用 @Data 注解) static class User { private String name; private int age; // getter + setter public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } } }
用swagger测试,浏览器输入swagger返回的测试链接,可直接下载文件
每天多努力一点,你将会变得更好。

浙公网安备 33010602011771号