文章总结: 本文介绍Java中使用Jackson库实现JSON字符串反序列化的方案。内容包含Maven依赖配置及封装的JsonUtils工具类,演示了将JSON转为普通POJO、List集合及复杂泛型的代码逻辑。通过配置ObjectMapper优化处理属性,文章提供了可复用的工具类与测试示例,帮助开发者快速实现高效的数据交互与转换功能。 综合评分: 75 文章分类: 安全开发
Jackson库字符串反序列化转换
原创
静观云起 静观云起
码云精炼
2026年1月18日 17:35 广东
在Java开发中,经常要将JSON字符串转换为普通的pojo对象,数组,List<T>集合和嵌套对象。Jackson库性能高,功能全面,Spring框架默认集成。
一 配置maven依赖
<project> <dependencies> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.15.2</version> </dependency> </dependencies></project>
二 封装工具类
import com.fasterxml.jackson.core.type.TypeReference;import com.fasterxml.jackson.databind.ObjectMapper;import java.util.List;public class JsonUtils { private static final ObjectMapper objectMapper = new ObjectMapper(); static { // 将Java对象序列化为JSON字符串时,忽略值为null的字段 objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); // 反序列化时希望忽略JSON中不存在的字段 objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); }
// 1.转换为普通POJO对象 public static <T> T fromJson(String json, Class<T> clazz) { try { return objectMapper.readValue(json, clazz); } catch (Exception e) { throw new RuntimeException("JSON转对象失败", e); } }
// 2.泛型集合,如List<T> public static <T> List<T> fromJsonToList(String json, Class<T> elementClass) { try { return objectMapper.readValue(json, new TypeReference<List<T>>() {}); } catch (Exception e) { throw new RuntimeException("JSON转List失败", e); } }
// 3.更通用的方式,支持任意复杂泛型(如Map<String, List<T>>) public static <T> T fromJsonToGenericType(String json, TypeReference<T> typeRef) { try { return objectMapper.readValue(json, typeRef); } catch (Exception e) { throw new RuntimeException("JSON转泛型对象失败", e); } }}
三 测试
1.转换普通对象
// 普通对象String personJson = "{\"name\":\"李四\",\"age\":30}";Person person = JsonUtils.fromJson(personJson, Person.class);
- List
类型转换
String listJson = "[{\"name\":\"王五\",\"age\":28},{\"name\":\"赵六\",\"age\":35}]";List<Person> personList = JsonUtils.fromJsonToList(listJson, Person.class);
- 嵌套结构
// Map<String, List<Person>> 或自定义结构 Map<String, List<Person>> map = JsonUtils.fromJsonToGenericType( jsonStr, new TypeReference<Map<String, List<Person>>>() {});
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:码云精炼 静观云起 静观云起《Jackson库字符串反序列化转换》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。








评论