Spring Boot 配置 Jackson
什么是 Jackson ? 有什么作用?
Jackson 是 Spring Boot 内置的 Json 解析框架,用来完成出入参的序列化和反序列化。通常,我们会在 Controller 类中方法上,加上 @RequestBody
或者 @ResponseBody
注解,Spring Boot 会自动对出入参做 Json 解析与转换工作。
注意:
@RequestBody
用于将入参 Json 转换成对象,而@ResponseBody
用于将对象转换成 Json 返回。
已经内置,为何还需要配置?
内置的 Jackson 无法满足生产所需,比如说对自定义日期格式,亦或者我们想适配 Java 8 新加入的 LocalDate
,LocalDateTime
等。
下面以自定义日期格式转换为例,定义一个 /user
接口:
package site.exception.springbootjackson.controller; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import site.exception.springbootjackson.entity.User; /** * @time 21:03 * @discription **/ @RestController public class UserController { /** * 定义一个创建用户的接口 * @param user * @return */ @PostMapping("/user") public User createUser(@RequestBody User user) { System.out.println(user.getCreateTime().toString()); // 将 user 再以 Json 的形式返回 return user; } }
User.java:
package site.exception.springbootjackson.entity; import java.io.Serializable; import java.util.Date; /** * @time 21:00 * @discription **/ @Data public class User implements Serializable { /** * 用户名 */ private String username; /** * 密码 */ private String password; /** * 创建时间 */ private Date createTime; }
上面这个接口我们直接使用的 @RestController
, 它会将此 Controller 中的方法均以 Json 的格式进行返回。完成这一切以后,启动项目,并通过 Postman 访问该接口,测试一下 Json 格式提交能否进行正常转换:
很不幸,报错了!接下来,我们需要自定义格式转换。
配置 Jackson
定义一个 JacksonConfig
配置类:
package site.exception.springbootjackson.config; import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import java.text.SimpleDateFormat; /** * @time 19:32 * @discription **/ @Configuration public class JacksonConfig { @Bean public ObjectMapper objectMapper() { ObjectMapper objectMapper = new ObjectMapper(); // 自定义日期转换格式 objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")); return objectMapper; } }
重新启动项目,再次对该接口访问:
本文来自博客园,作者:深码青年,转载请注明原文链接:https://www.cnblogs.com/shenMaQN/p/17764275.html
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战