Spring之返回Json串 使用Spring搭建的web后端服务,与前端通过Json串进行交互,特此记录下使用姿势
1. 直接返回JsonString 这个可以说是最简单和最常见的一种使用姿势了,直接返回String,如下
1 2 3 4 5 @ResponseBody @RequestMapping (value = "/body" )public String body (@RequestBody Req req) { return JSON.toJSONString(req); }
2. 使用JsonInclude
注解 直接返回的是一个对象,然后交给框架来将对象转换为String丢给前端
1 2 3 4 5 @RequestMapping (path = {"/index" , "/" })public ResponseWrapper<List<PoetryDTO>> index() { List<PoetryDTO> ans = poetryReadService.getIndex(); return ResponseWrapper.successReturn(ans); }
直接用上面的方式时,可能会抛出,提示没有对应的HttpMessageConverter
来转换ResponseWrapper对象
一个简单的使用姿势就是直接使用注解 com.fasterxml.jackson.annotation.JsonInclude
如下即可
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 JsonInclude @Data @NoArgsConstructor public class ResponseWrapper <T > { private int code; private String msg; private T data; public ResponseWrapper (int code, String msg, T data) { this .code = code; this .msg = msg; this .data = data; } public static <T> ResponseWrapper<T> buildSuccess (T data) { return new ResponseWrapper<>(200 , "success" , data); } public static <T> ResponseWrapper<T> buildError (int code, String msg, T data) { return new ResponseWrapper<>(code, msg, data); } }
因此关键就是HttpMessageConverter
在起作用了,下一篇重点关注下这个是什么东西,干嘛用,以及如何自己实现一个特定需求的转换器
II. 其他 一灰灰的个人博客,记录所有学习和工作中的博文,欢迎大家前去逛逛
2. 声明 尽信书则不如,已上内容,纯属一家之言,因个人能力有限,难免有疏漏和错误之处,如发现bug或者有更好的建议,欢迎批评指正,不吝感激
3. 扫描关注 一灰灰blog
知识星球