java的map和json的关系
当使用map或者fastjson的jsonObject的对象时发现,这两个都可以生成json格式的字符串返回前端,那么问题来了,这两种有啥区别,既然map可以生成json那么fastjson和jackjson用来干啥呢。
仔细研究我先了我的理解的错误所在。
首先就是map对象在前端生成的json字符串是经过jackson处理的,map对象是不满足json格式的。
如
可以看到在控制台输出的是不满足json格式的,因为json格式要求key必须是String,但是我之前看到前端调用返回的效果是带双引号的
原因是使用了RestController注解,底层使用jsckson把我们的map封装成了json格式,所以我们的key都有双引号,因此我们可以在有restController注解的情况下使用map直接返回的结果就是json而不用再次转为json
但是,当没有@restController时我们还是老老实实使用json框架如jsonObject(fastjson的类)把map转为json返回才可以。
需要注意的点是我们的map可以把null值返回前端,jackObject也是可以的,只不过在控制台打印的时候看不到而已,所以map在restController注解下就相当于json框架的效果生成标准的json对象,否则要用框架转一下成json,。
还有一点要注意的是,我们使用的Jackson或者fastjson底层其实还是hashmap
最后需要明确的是map是一种对象,而json是一种规范,我们进行数据传输的时候就是传输的符合json规范的map,而jackson和fastjson就实现了这个功能。
一、数据格式不同
1、map类型:可以使用匿名对象找到一个key对应的value。
2、json类型:是一种轻量级的数据交换格式。
二、数据处理方式不同
1、map类型:将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。
2、json类型:基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。

三、特点不同
1、map类型:提供三种collection 视图,允许以键集、值集或键-值映射关系集的形式查看某个映射的内容。
2、json类型:洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!