ObjectMapper(json数据处理工具)

AI摘要
ObjectMapper 是 Jackson 库的核心类,用于 Java 对象与 JSON 数据的双向转换。支持序列化(对象转 JSON 字符串)和反序列化(JSON 字符串转对象),可处理复杂数据结构、文件交互及自定义规则。广泛应用于前后端数据交互、接口调用和配置文件处理,极大简化 JSON 数据处理流程。

com.fasterxml.jackson.databind.ObjectMapper 是 Jackson 库(一个流行的 Java JSON 处理库)中的核心类,主要功能是实现 Java 对象与 JSON 数据之间的相互转换,是处理 JSON 格式数据的强大工具。

核心功能详解:

  1. Java 对象 → JSON 字符串(序列化)
    将 Java 中的实体类对象、集合、Map 等数据结构转换为 JSON 格式的字符串。
    示例:

    java

    运行

    // 定义一个Java对象
    class User {
        private String name;
        private int age;
        // 构造函数、getter/setter省略
    }
    
    public class Main {
        public static void main(String[] args) throws Exception {
            ObjectMapper objectMapper = new ObjectMapper();
            User user = new User("张三", 25);
    
            // 将Java对象转为JSON字符串
            String json = objectMapper.writeValueAsString(user);
            System.out.println(json); // 输出:{"name":"张三","age":25}
        }
    }
    
  2. JSON 字符串 → Java 对象(反序列化)
    将 JSON 格式的字符串转换为对应的 Java 对象、集合或 Map 等。
    示例:

    java

    运行

    public class Main {
        public static void main(String[] args) throws Exception {
            ObjectMapper objectMapper = new ObjectMapper();
            String json = "{\"name\":\"李四\",\"age\":30}";
    
            // 将JSON字符串转为Java对象
            User user = objectMapper.readValue(json, User.class);
            System.out.println(user.getName()); // 输出:李四
        }
    }
    
  3. 处理复杂数据结构
    支持集合(ListSet)、Map、数组等复杂结构的转换:

    java

    运行

    // JSON数组 → List<User>
    String jsonArray = "[{\"name\":\"张三\"},{\"name\":\"李四\"}]";
    List<User> userList = objectMapper.readValue(jsonArray, 
        new TypeReference<List<User>>() {});
    
  4. JSON 与文件 / 流的交互
    直接从文件读取 JSON 并转换为对象,或把对象写入文件(JSON 格式):

    java

    运行

    // 从JSON文件读取并转换为对象
    User user = objectMapper.readValue(new File("user.json"), User.class);
    
    // 将对象写入JSON文件
    objectMapper.writeValue(new File("output.json"), user);
    
  5. 自定义序列化 / 反序列化规则
    当默认转换规则不满足需求时(如日期格式、字段名映射),可以通过注解或自定义配置修改:

    java

    运行

    class User {
        @JsonProperty("username") // JSON字段名为"username",而非"name"
        private String name;
    
        @JsonFormat(pattern = "yyyy-MM-dd") // 日期格式转换
        private Date birthday;
    }
    

为什么需要 ObjectMapper

在 Java 开发中,JSON 是前后端数据交互、接口调用(如 REST API)、数据存储的常用格式。ObjectMapper 简化了 Java 对象与 JSON 之间的转换过程,避免了手动拼接 JSON 字符串或解析 JSON 的繁琐工作,是开发中处理 JSON 数据的必备工具。

常见应用场景:

  • 后端接口返回 JSON 数据给前端
  • 接收前端发送的 JSON 数据并转换为 Java 对象
  • 读取 / 写入 JSON 格式的配置文件
  • 与其他系统通过 JSON 格式的接口进行数据交互
本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!