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

发布于:2025-09-08 ⋅ 阅读:(16) ⋅ 点赞:(0)

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

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


一、最常用的 4 个场景

方向 代码示例 作用
对象 → JSON String 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 消息转换器的底层实现,也是业务代码里手动序列化/反序列化的首选


网站公告

今日签到

点亮在社区的每一天
去签到