Jackson:整合SpringBoot

博客介绍了Spring Boot默认导入Jackson依赖,重点提及了配置文件和配置类相关内容,属于后端开发中Spring Boot技术范畴。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

springboot默认导入Jackson依赖

配置文件

spring:
  jackson:
    # 日期格式化
    date-format: yyyy-MM-dd HH:mm:ss
    # 序列化相关
    serialization:
      # 格式化输出
      indent_output: true
      # 忽略无法转换的对象
      fail_on_empty_beans: true
    # 反序列化相关
    deserialization:
      # 解析json时,遇到不存在的属性就忽略
      fail_on_unknown_properties: false
    # 设置空如何序列化
    defaultPropertyInclusion: NON_EMPTY
    parser:
      # 允许特殊和转义符
      allow_unquoted_control_chars: true
      # 允许单引号
      allow_single_quotes: true

配置类

@Configuration
public class JacksonConfig {

    @Bean("customizeObjectMapper")
    @Primary
    @ConditionalOnMissingBean(ObjectMapper.class)
    public ObjectMapper getObjectMapper(Jackson2ObjectMapperBuilder builder) {
        ObjectMapper mapper = builder.build();

        // 日期格式
        mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"));

        // 美化输出
        mapper.enable(SerializationFeature.INDENT_OUTPUT);

        return mapper;
    }
}
### Spring Boot 整合 Jackson 示例及配置方法 #### 1. 添加依赖项 为了在 Spring Boot 中使用 Jackson 进行 JSON 处理,需要确保 `spring-boot-starter-web` 或者单独的 `jackson-databind` 已经被添加到项目的依赖列表中。通常情况下,在创建一个新的 Web 应用程序时,默认会包含这些依赖。 对于 Maven 项目,可以在 `pom.xml` 文件中找到如下依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> ``` 如果仅需引入 Jackson 而不涉及其他 web 组件,则可以显式声明 jackson 的核心库: ```xml <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> </artifactId> ``` #### 2. 创建实体类并启用序列化/反序列化支持 定义一个简单的 Java 实体类用于展示数据绑定功能。这里以 `Person` 类为例,并为其提供必要的 getter/setter 方法以及无参构造函数以便于框架自动装配实例对象。 ```java import com.fasterxml.jackson.annotation.JsonFormat; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @Data @NoArgsConstructor @AllArgsConstructor public class Person { private String name; @JsonFormat(pattern="yyyy-MM-dd") private java.util.Date birthDate; } ``` 注意这里的日期字段使用了 `@JsonFormat` 注解指定格式化模式[^1]。 #### 3. 自定义全局配置 可以通过实现 `WebMvcConfigurer` 接口来自定义应用程序的行为,比如修改默认的消息转换器(MessageConverter)。下面的例子展示了如何通过覆盖 `extendMessageConverters()` 方法来调整 HTTP 请求响应之间的 JSON 数据交换行为。 ```java import org.springframework.context.annotation.Configuration; import org.springframework.http.converter.HttpMessageConverter; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import java.util.List; @Configuration public class WebConfig implements WebMvcConfigurer { @Override public void extendMessageConverters(List<HttpMessageConverter<?>> converters) { // 可在此处添加自定义消息转换逻辑 } } ``` 更常见的是直接利用 application.properties 或 yml 来简化配置过程: ```properties # application.yml or .properties file content spring.jackson.date-format=yyyy-MM-dd HH:mm:ss spring.jackson.time-zone=GMT+8 ``` 上述属性设置了整个应用范围内使用的日期时间格式时区信息[^2]。 #### 4. 测试接口返回的数据结构 最后编写 RESTful API 控制器验证一切正常工作。当客户端发送 GET 请求访问 `/person/{id}` URL 地址时,服务器端将会把对应的 `Person` 对象转化为 JSON 字符串形式回传给前端页面显示出来。 ```java @RestController @RequestMapping("/api/people") public class PersonController { @GetMapping("/{id}") ResponseEntity<Person> getPerson(@PathVariable Long id){ // 假设有一个服务层负责查询数据库获取具体的人的信息... return new ResponseEntity<>(new Person("John Doe", new Date()), HttpStatus.OK); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员无羡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值