java之json串转Map的整理
#技术教程 发布时间: 2025-12-25
Java中将JSON字符串转为Map应优先选Jackson,因其生态成熟、Spring Boot原生集成;Fastjson需注意1.x安全漏洞,Gson适用于Android等轻量场景。
Java中将JSON字符串转为Map,核心是选对库、注意类型匹配、处理嵌套结构。最常用的是Jackson和Fastjson,Gson也支持但写法稍不同。
用Jackson转JSON串为Map
Jackson的ObjectMapper默认可将JSON解析为LinkedHashMap(保持字段顺序),适合简单场景。
- 添加Maven依赖:
com.fasterxml.jackson.core:jackson-databind - 基础写法:
ObjectMapper mapper = new ObjectMapper(); Map
map = mapper.readValue(jsonStr, Map.c
lass); - 若JSON含嵌套对象或数组,
Object会自动映射为LinkedHashMap或ArrayList,取值时需向下转型 - 推荐指定泛型以提升类型安全:
Map
map = mapper.readValue(jsonStr, new TypeReference
用Fastjson转JSON串为Map
Fastjson(尤其1.x)对Map转换非常简洁,但要注意版本差异和安全性(2.x已重构,API不兼容)。
- 1.x常用写法:
Map
map = JSON.parseObject(jsonStr, Map.class); - 支持直接解析为
JSONObject(本质是LinkedHashMap子类),便于链式取值:JSONObject obj = JSON.parseObject(jsonStr); String name = obj.getString("name"); - 注意:Fastjson 1.x存在反序列化漏洞,生产环境建议升级到2.x或改用Jackson/Gson
处理常见坑点
无论用哪个库,以下问题高频出现:
-
数字类型自动转成Double:JSON中的
123会被解析为Double而非Integer,比较时用Objects.equals(),或提前转类型 -
空值与null字段:默认不保留null字段;如需保留,Jackson需配置
mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL)并设为ALWAYS -
中文乱码:确保JSON字符串本身编码为UTF-8,且
ObjectMapper未被错误设置字符集(通常无需手动设) -
日期格式异常:含时间字段时,Jackson默认按ISO格式解析;自定义格式需注册
SimpleModule+StdDateFormat
简单对比与建议
日常开发优先选Jackson:生态成熟、Spring Boot原生集成、文档丰富、安全性高。Fastjson适合老项目快速适配,但新项目不建议引入。Gson语法略啰嗦,但Google维护稳定,适合Android或轻量场景。
基本上就这些,选一个库吃透,比来回切换更高效。
技术教程SEO上一篇 : Yandex官网免费入口使用 俄罗斯最大搜索引擎官方网址
下一篇 : 4399云游戏能否多设备切换玩_4399云游戏跨设备续玩设置【教程】
-
SEO外包最佳选择国内专业的白帽SEO机构,熟知搜索算法,各行业企业站优化策略!
SEO公司
-
可定制SEO优化套餐基于整站优化与品牌搜索展现,定制个性化营销推广方案!
SEO套餐
-
SEO入门教程多年积累SEO实战案例,从新手到专家,从入门到精通,海量的SEO学习资料!
SEO教程
-
SEO项目资源高质量SEO项目资源,稀缺性外链,优质文案代写,老域名提权,云主机相关配置折扣!
SEO资源
-
SEO快速建站快速搭建符合搜索引擎友好的企业网站,协助备案,域名选择,服务器配置等相关服务!
SEO建站
-
快速搜索引擎优化建议没有任何SEO机构,可以承诺搜索引擎排名的具体位置,如果有,那么请您多注意!专业的SEO机构,一般情况下只能确保目标关键词进入到首页或者前几页,如果您有相关问题,欢迎咨询!
lass);