ObjectMapper(json数据处理工具)
com.fasterxml.jackson.databind.ObjectMapper
是 Jackson 库(一个流行的 Java JSON 处理库)中的核心类,主要功能是实现 Java 对象与 JSON 数据之间的相互转换,是处理 JSON 格式数据的强大工具。
核心功能详解:
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} } }
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()); // 输出:李四 } }
处理复杂数据结构
支持集合(List
、Set
)、Map、数组等复杂结构的转换:java
运行
// JSON数组 → List<User> String jsonArray = "[{\"name\":\"张三\"},{\"name\":\"李四\"}]"; List<User> userList = objectMapper.readValue(jsonArray, new TypeReference<List<User>>() {});
JSON 与文件 / 流的交互
直接从文件读取 JSON 并转换为对象,或把对象写入文件(JSON 格式):java
运行
// 从JSON文件读取并转换为对象 User user = objectMapper.readValue(new File("user.json"), User.class); // 将对象写入JSON文件 objectMapper.writeValue(new File("output.json"), user);
自定义序列化 / 反序列化规则
当默认转换规则不满足需求时(如日期格式、字段名映射),可以通过注解或自定义配置修改: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 协议》,转载必须注明作者和本文链接
推荐文章: