目录

关于ObjectMapper类是什么,如何使用Jackson-库的核心类ObjectMapper

关于ObjectMapper类是什么,如何使用——Jackson 库的核心类ObjectMapper

ObjectMapperJackson 库的核心类,一句话概括:

把 Java 对象 ↔ JSON 字符串 互相转换的“翻译官”


一、最常用的 4 个场景

方向代码示例作用
对象 → JSONString json = objectMapper.writeValueAsString(user);后端返回给前端、写 Kafka、落 MongoDB
JSON → 对象User user = objectMapper.readValue(json, User.class);接收前端参数、消费 MQ、读缓存
JSON → 树JsonNode node = objectMapper.readTree(json);只取一两个字段时,省得建 DTO
对象 → 字节数组byte[] bytes = objectMapper.writeValueAsBytes(obj);网络传输、序列化到 Redis

二、在 Spring Boot 里为什么到处都能用

  1. Spring MVC 默认内置了一个单例 ObjectMapper

    • 返回值自动转 JSON
    • @RequestBody 自动解析 JSON
  2. 自己注入即可

    @Bean
    public ObjectMapper objectMapper() {
        return new ObjectMapper()
                .disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)
                .registerModule(new JavaTimeModule());   // 支持 LocalDateTime
    }
  3. 线程安全 → 可以全局单例,性能高


三、常见实用配置

ObjectMapper om = new ObjectMapper();
om.setSerializationInclusion(JsonInclude.Include.NON_NULL); // null 字段不输出
om.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); // 字段多余时不报错
om.registerModule(new JavaTimeModule()); // 支持 JDK8 时间
om.enable(SerializationFeature.INDENT_OUTPUT); // 打印漂亮格式

四、一张图秒懂

Java 对象 ──writeValueAsString──► JSON 字符串
     ▲                                │
     │──readValue─────────────────────┘

总结

ObjectMapper 就是 Java 世界里官方、最常用、线程安全的“JSON 与对象互转工具”;在 Spring Boot 中,它既是 HTTP 消息转换器的底层实现,也是业务代码里手动序列化/反序列化的首选