java中json反序列化最推荐使用jackson的objectmapper:1.添加jackson-databind依赖;2.定义匹配字段名的pojo并提供无参构造器;3.复用objectmapper调用readvalue()并捕获jsonprocessingexception;4.通过@jsonproperty等注解处理字段映射、日期格式、未知字段等。

Java 中把 JSON 反序列化为对象,最常用、最推荐的方式是使用 Jackson 库(com.fasterxml.jackson.databind.ObjectMapper),它稳定、高效、支持丰富特性,且与 Spring 等主流框架深度集成。
1. 添加 Jackson 依赖(Maven)
确保项目中已引入 Jackson 核心依赖:
2. 定义目标 Java 类(POJO)
类字段名需与 JSON 字段名匹配(或通过注解映射),建议提供无参构造器和 getter/setter(Jackson 默认需要):
public class User {
private String name;
private int age;
private List
// 无参构造器(必须)
public User() {}
// getter/setter 省略(IDE 可自动生成)
}
3. 使用 ObjectMapper 反序列化
- 创建
ObjectMapper实例(建议复用,它是线程安全的) - 调用
readValue(String json, Class<t> valueType)</t>方法 - 捕获
JsonProcessingException(如 JSON 格式错误、类型不匹配等)
ObjectMapper mapper = new ObjectMapper();
String json = "{\"name\":\"Alice\",\"age\":30,\"tags\":[\"java\",\"web\"]}";
try {
User user = mapper.readValue(json, User.class);
System.out.println(user.getName()); // 输出:Alice
} catch (JsonProcessingException e) {
e.printStackTrace();
}
4. 常见适配技巧
-
字段名不一致? 用
@JsonProperty("json_field_name")标注字段 -
JSON 有日期字符串? 配置
mapper.configure(DeserializationFeature.USE_STRING_DESERIALIZER_FOR_DATES, true)或用@JsonFormat(pattern = "yyyy-MM-dd") -
忽略未知字段? 加
@JsonIgnoreProperties(ignoreUnknown = true)在类上 -
处理 null 或空字符串转默认值? 用
@JsonSetter(nulls = Nulls.SKIP)或自定义反序列化器
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











