Skip to content

Jackson

最后更新: 17 天前
实践版本: v2.13.4

简介

continew-starter-json-jackson 是 ContiNew Starter 提供的 JSON 处理模块,基于 Jackson 框架实现,提供开箱即用的 JSON 序列化与反序列化解决方案。

主要特性

  • 默认配置:预置符合 RESTful API 最佳实践的 JSON 处理规则
  • 增强序列化支持
    • 大数值类型安全序列化(避免前端精度丢失)
    • 时间类型全面支持:LocalDateTime/LocalDate/LocalTime/Instant/Duration 的序列化与反序列化
    • JSR-310 日期时间 API 完整支持
    • BaseEnum 序列化与反序列化支持
  • JSON 工具类: JSONUtils、JSONBuilder

快速开始

引入依赖

pom.xml
xml
<dependency>
    <groupId>top.continew.starter</groupId>
    <artifactId>continew-starter-json-jackson</artifactId>
</dependency>

添加配置

下方配置为模块默认配置,你可根据需要进行覆盖,如果无需覆盖,则不需要配置下方内容。

配置详情请查看:top.continew.starter.json.jackson.autoconfigure.JacksonExtensionProperties

application.yml
yaml
--- ### Spring 配置
spring:
  ## MVC 配置
  mvc:
    format:
      # 日期格式化(针对 java.util.Date)
      date-time: yyyy-MM-dd HH:mm:ss
  ## Jackson 配置
  jackson:
    # 时区配置
    time-zone: GMT+8
    # 日期格式化(针对 java.util.Date)
    date-format: yyyy-MM-dd HH:mm:ss
    # 序列化配置(Bean -> JSON)
    serialization:
      # 不允许序列化日期时以 timestamps 输出(默认:true)
      write-dates-as-timestamps: false
      # 允许序列化无属性的 Bean
      fail-on-empty-beans: false
    # 反序列化配置(JSON -> Bean)
    deserialization:
      # 允许反序列化不存在的属性
      fail-on-unknown-properties: false
    # 大数值序列化模式
    big-number-serialize-mode: FLEXIBLE

核心依赖

依赖坐标描述
top.continew.starter:continew-starter-core核心模块
org.springframework.boot:spring-boot-starter-jsonSpring Boot JSON 模块
com.fasterxml.jackson.datatype:jackson-datatype-jsr310JSR-310 日期时间 API 支持模块