Jackson库字符串反序列化转换

admin 2026-01-20 01:39:02 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文介绍Java中使用Jackson库实现JSON字符串反序列化的方案。内容包含Maven依赖配置及封装的JsonUtils工具类,演示了将JSON转为普通POJO、List集合及复杂泛型的代码逻辑。通过配置ObjectMapper优化处理属性,文章提供了可复用的工具类与测试示例,帮助开发者快速实现高效的数据交互与转换功能。 综合评分: 75 文章分类: 安全开发


cover_image

Jackson库字符串反序列化转换

原创

静观云起 静观云起

码云精炼

2026年1月18日 17:35 广东

在Java开发中,经常要将JSON字符串转换为普通的pojo对象,数组,List<T>集合和嵌套对象。Jackson库性能高,功能全面,Spring框架默认集成。

一 配置maven依赖

<project>&nbsp; &nbsp;&nbsp;<dependencies>&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<dependency>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<groupId>com.fasterxml.jackson.core</groupId>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<artifactId>jackson-databind</artifactId>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<version>2.15.2</version>&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</dependency>&nbsp; &nbsp;&nbsp;</dependencies></project>

二 封装工具类

import&nbsp;com.fasterxml.jackson.core.type.TypeReference;import&nbsp;com.fasterxml.jackson.databind.ObjectMapper;import&nbsp;java.util.List;public&nbsp;class&nbsp;JsonUtils&nbsp;{&nbsp; &nbsp;&nbsp;private&nbsp;static&nbsp;final&nbsp;ObjectMapper&nbsp;objectMapper =&nbsp;new&nbsp;ObjectMapper();&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;static&nbsp;{&nbsp; &nbsp; &nbsp;&nbsp;// 将Java对象序列化为JSON字符串时,忽略值为null的字段&nbsp; &nbsp; &nbsp; objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);&nbsp;&nbsp; &nbsp; &nbsp;&nbsp;// 反序列化时希望忽略JSON中不存在的字段&nbsp; &nbsp; &nbsp; objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES,&nbsp;false);&nbsp; &nbsp; }
&nbsp; &nbsp;&nbsp;// 1.转换为普通POJO对象&nbsp; &nbsp;&nbsp;public&nbsp;static&nbsp;<T> T&nbsp;fromJson(String&nbsp;json,&nbsp;Class<T> clazz) {&nbsp; &nbsp; &nbsp;try&nbsp;{&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;return&nbsp;objectMapper.readValue(json, clazz);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}&nbsp;catch&nbsp;(Exception&nbsp;e) {&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;throw&nbsp;new&nbsp;RuntimeException("JSON转对象失败", e);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}&nbsp; &nbsp; }
&nbsp; &nbsp;&nbsp;// 2.泛型集合,如List<T>&nbsp; &nbsp;&nbsp;public&nbsp;static&nbsp;<T>&nbsp;List<T>&nbsp;fromJsonToList(String&nbsp;json,&nbsp;Class<T> elementClass) {&nbsp; &nbsp; &nbsp;try&nbsp;{&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return&nbsp;objectMapper.readValue(json,&nbsp;new&nbsp;TypeReference<List<T>>() {});&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}&nbsp;catch&nbsp;(Exception&nbsp;e) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;throw&nbsp;new&nbsp;RuntimeException("JSON转List失败", e);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}&nbsp; &nbsp; }
&nbsp; &nbsp;&nbsp;// 3.更通用的方式,支持任意复杂泛型(如Map<String, List<T>>)&nbsp; &nbsp;&nbsp;public&nbsp;static&nbsp;<T> T&nbsp;fromJsonToGenericType(String&nbsp;json,&nbsp;TypeReference<T> typeRef) {&nbsp; &nbsp; &nbsp;try&nbsp;{&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;return&nbsp;objectMapper.readValue(json, typeRef);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}&nbsp;catch&nbsp;(Exception&nbsp;e) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;throw&nbsp;new&nbsp;RuntimeException("JSON转泛型对象失败", e);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}&nbsp; &nbsp; &nbsp;}}

三 测试

1.转换普通对象

// 普通对象String&nbsp;personJson&nbsp;=&nbsp;"{\"name\":\"李四\",\"age\":30}";Person&nbsp;person&nbsp;=&nbsp;JsonUtils.fromJson(personJson,&nbsp;Person.class);
  1. List类型转换
String&nbsp;listJson&nbsp;=&nbsp;"[{\"name\":\"王五\",\"age\":28},{\"name\":\"赵六\",\"age\":35}]";List<Person> personList&nbsp;=&nbsp;JsonUtils.fromJsonToList(listJson,&nbsp;Person.class);
  1. 嵌套结构
// Map<String, List<Person>> 或自定义结构&nbsp;Map<String,&nbsp;List<Person>> map =&nbsp;JsonUtils.fromJsonToGenericType(&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; jsonStr,&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;new&nbsp;TypeReference<Map<String,&nbsp;List<Person>>>() {});


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:码云精炼 静观云起 静观云起《Jackson库字符串反序列化转换》

“北冥有鱼”何以成真 网络安全文章

“北冥有鱼”何以成真

文章总结: 文章阐述了生态文明与科技创新如何将中国古代神话变为现实。通过黄河口生态修复重现壮观鸟浪、核聚变EAST创世界纪录及航天领域突破,印证了高质量发展成就
评论:0   参与:  0