问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

002、Spring Boot返回Json数据及数据封装

发布网友 发布时间:2024-12-01 14:19

我来回答

1个回答

热心网友 时间:2024-12-10 00:56

在项目开发中,接口与接口之间,前后端之间数据的传输都使用 Json 格式。Spring Boot 中,接口返回 Json 格式的数据很简单,在 Controller 中使用 @RestController 注解即可返回 Json 格式的数据。@RestController 注解包含了原来的 @Controller 和 @ResponseBody 注解。默认情况下,使用 @RestController 注解即可将返回的数据结构转换成 Json 格式。Spring Boot 中默认使用的 Json 解析技术框架是 jackson。使用 @RestController 注解可以方便地返回 Json 数据。

Spring Boot 中对依赖都做了很好的封装。我们可以查看 pom.xml 中的 spring-boot-starter-web 依赖,可以看到一个 spring-boot-starter-json 依赖。Spring Boot 的特点之一是不需要人为去引入很多相关的依赖。我们可以再次点进去上面这个 spring-boot-starter-json 依赖,查看其内容。Spring Boot 中默认使用的 json 解析框架是 jackson。

在实际项目中,常用的数据结构无非有类对象、List 对象、Map 对象。默认的 jackson 框架对这三个常用的数据结构转成 json 后的格式如何?我们可以通过测试来验证。在 Controller 类中,我们可以分别返回 User 对象、List 和 Map。然后在浏览器中输入不同的 URL 来测试效果。我们看到,map 中不管是什么数据类型,都可以转成相应的 json 格式。这样就非常方便。

在实际项目中,我们难免会遇到一些 null 值出现。我们转 json 时,是不希望有这些 null 出现的。比如我们期望所有的 null 在转 json 时都变成 "" 这种空字符串。在 Spring Boot 中,我们可以通过配置来实现。我们可以新建一个 jackson 的配置类,修改返回 map 的接口,将几个值改成 null 进行测试。重启项目,再次输入 URL,可以看到 jackson 已经将所有 null 字段转成了空字符串了。

阿里巴巴的 FastJson 也常用于项目中 json 转换的相关工作。jackson 和 fastJson 的区别在于:上手难易程度、高级特性支持、官方文档、Example 支持和处理 json 速度。在扩展上,fastJson 没有 jackson 灵活,从速度或者上手难度来看,fastJson 可以考虑。在项目中使用的是阿里的 fastJson,挺方便的。使用 fastJson 需要导入依赖,版本为 1.2.35。使用 fastJson 时,对 null 的处理和 jackson 有些不同。

为了在返回的 json 中添加一些其他信息,比如返回一些状态码 code 和返回一些 msg 给调用者,我们需要封装一个统一的 json 返回结构。这使得返回的 json 数据信息更加完整。我们定义了一个统一的 json 结构,包括数据、状态码、提示信息,并且可以根据实际业务需求做相应的添加。在 Controller 中,我们可以使用泛型来方便地返回各种数据类型。通过封装,我们不仅将数据通过 json 传给前端或者其他接口,还带上了状态码和提示信息。这在实际项目场景中应用非常广泛。

总结,本节详细分析了 Spring Boot 中 json 数据的返回。从默认的 jackson 框架到阿里巴巴的 fastJson 框架,我们对它们的配置进行了相应的讲解。另外,结合实际项目情况,我们总结了实际项目中使用的 json 封装结构体,加入了状态码和提示信息,使得返回的 json 数据信息更加完整。课程源代码下载地址:[课程源代码下载](链接)。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
我用无线数传模块PTR6000做实验 接收不到数据包 很急啊 祈求高人指导帮 ... Lora无线传输协议技术浅析 南昌定购433M无线通讯模块 福州433m无线模块订购 联想电脑系统重装后怎么连网线电脑做完系统怎么网络连接 电脑重装了系统还是连接不到wifi为什么电脑重装系统后不能连接wifi 笔记本电脑新装系统后连不上wifi为什么电脑重装系统后不能连接wifi 笔记本电脑装系统后无法连接wifi为什么笔记本电脑wifi连接不上 电脑重装系统后搜不到无线网了为什么笔记本电脑重装了系统之后就连不... 求问~怎样区分2018款君越是不是库存车? 万一我们只能当朋友,是什么意思。。。 快手小店服务考核/治理规则调整 【CNKI收录期刊推荐】安全科学与工程学报—Journal of Safety Science... 2011年9月10月搬家吉日,农历。 一平方铜线能带多少千瓦大家可以计算一下 1平方铜线能带多大电流电压 WPS手机版怎么添加照片 插入操作帮你忙 这是公园里的树,谁能告诉我这是什么树呢? 英语短文,词数100左右。提示:我的朋友叫杨立,现在读高二,是班长,是全... 什么是密苏里大学 ring-a-levio是什么游戏 天猫购物卡是什么 天猫购物卡是什么卡?怎么用? 我想给长城T60的内存升级,不知道加什么型号的内存 T60内存升级问题。 最近想要升级内存,不知内存频率是否支持超过800hz... ...T60,两个DDR2 512M 667MHZ内存条,请问能把一个内存条升级到2G... 关于升级T60内存的问题 LOL史诗魄罗礼盒多少天打开合适 考研英语2是哪几年的题目啊? ...催债公司天天打电话,今天还了四千,怎么才能让催债公司不来上门催_百 ... SpringBoot 如何优雅的接收前端参数 华为荣耀3c的朋友们,推荐一下安全清理软件用哪个好 华为荣耀3C手机用lbe安全大师和360卫士,哪个好 ...将磁盘插入“U盘(G:)”是怎么回事?里面的数据咋办? 请将磁盘插入u盘怎么解决 ...纸条「众志成城,笔书战“疫”」征文大赛一等奖作品展示(一)_百度... 淘宝助理还能不能用?不能用可以用什么? 配置一个顶配的台式电脑要多少钱 i7电脑主机配置多少钱i7配置的电脑多少钱 现在组装一般的电脑需要多少钱,配置是什么 航天军工类股票哪一只是龙头股? 神舟八号受益股一览 神舟八号概念股 松针汽水原理 松针酒的制作方法有些什么? ...我们的报刊、杂志、电视和一切出版物,更有责任做出表率 ...错误并改正。我们的报刊、杂志、电视和一切出版物,更有 ...杂志、电视和一切出版物,更有责任作出表率,杜绝 高中语文病句题答题技巧(通用4篇) 一直播账户能注销吗 适合学日语的日剧有哪些