这里是修真院后端小课堂,每篇分享文从
【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】
八个方面深度解析后端知识/技能,本篇分享的是:
【 生成json的几种方式】
【修真院java小课堂】生成json的几种方式
大家好,我是IT修真院武汉分院第17期的学员王志雄,一枚正直纯洁善良的java程序员,今天给大家分享一下,修真院官网java任务2,深度思考中的知识点——生成json的几种方式
(1)背景介绍:
JSON,全称是 JavaScript Object Notation,即 JavaScript 对象标记法。是一种轻量的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。所以使用json来传递数据可以达到简单,快捷的效果。
(2)知识剖析:
生成JSon几种方式?
生成的JSON字符串是用来做前后端交互的,当前端用ajax请求时,后端就返还一个JSON字符串。
生成JSON的三种方式:
适用json-taglib并在jsp页面来设置字段或嵌套。
同过注解ResponseBody返回Java对象或集合,可以自动转化为JSON字符串。
利用Gson转化。
为什么推荐使用JSONTAGLIB来处理JSON
gson它提供了toJason()方法将对象转换成Json字符串
gson也可以反序列化,提供了fromJson()方法来实现从Json相关对象到Java实体的方法。
在使用@ResponseBody注解的方式时,
如果在控制器方法上标注该注解,那么方法返回的对象不会经过视图解析器的渲染,而是根据HTTP Request Header的Accept字段的内容,转换为指定的格式,写入到Response对象的body数据区中,如果没有额外的配置,那么就会返回json格式的数据
所以json-taglib的好处就体现出来了:
1.使用json-taglib,在控制器中的代码更加简洁,易读
2.使用json-taglib更加灵活,如果以后需要更改json数据格式,只需要更改jsp页面即可,不需要改动控制器代码
(3)常见问题:
Json运用
读取 JSON 字符串
用 eval() 处理 JSON 字符串
json可以以数组传递,也可以以对象传递,,返回的json格式,是一个数组json,然后里面含有对象,这是json常见的格式。后来经过php的处理,结构又发生了变化,最外层是一个对象了,里面是数组和对象。
在数据传输流程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键。例如:
JSON字符串:
var str1 = '{ "name": "haorooms","sex": "man" }';
JSON对象:
var str2 = { "name": "haorooms","sex": "man" };
在RPC远程调用时,或者提供给外部访问接口,一般数据交互格式通常为JSON
提供移动APP接口
(4)编码实战:
(5)拓展思考:
json和xml的区别
XML的优点
A.格式统一,符合标准;
B.容易与其他系统进行远程交互,数据共享比较方便。
XML的缺点
A.XML文件庞大,文件格式复杂,传输占带宽;
B.服务器端和客户端都需要花费大量代码来解析XML,导致服务器端和客户端代码变得异常复杂且不易维护;
C.客户端不同浏览器之间解析XML的方式不一致,需要重复编写很多代码;
D.服务器端和客户端解析XML花费较多的资源和时间。
json的优缺点
A.数据格式比较简单,易于读写,格式都是压缩的,占用带宽小
B.易于解析,客户端JavaScript可以简单的通过eval()进行JSON数据的读取;
C.支持多种语言,包括ActionScript,C,C#,ColdFusion,Java,JavaScript,Perl,PHP,Python,Ruby等服务器端语言,便于服务器端的解析;
D.在PHP世界,已经有PHP-JSON和JSON-PHP出现了,偏于PHP序列化后的程序直接调用,PHP服务器端的对象、数组等能直接生成JSON格式,便于客户端的访问提取;
E.因为JSON格式能直接为服务器端代码使用,大大简化了服务器端和客户端的代码开发量,且完成任务不变,并且易于维护。
JSON的缺点
A.没有XML格式这么推广的深入人心和喜用广泛,没有XML那么通用性 JSON格式目前在Web Service中推广还属于初级阶段。
(6)参考文献:
https://blog.csdn.net/android_zhengyongbo/article/details/67634565
(7)更多讨论:
Q1:JSON、XML解析有那些方式
A1:JSON解析方式(阿里巴巴fastjson、谷歌gson,jackJson) XML解析方式(dom、sax、pul)
Q2: 使用注解reponese 效率为什么比json-taglib 高?
A2: 因为使用注解的方式,直接返回json对象,不用经过视图渲染。而json-taglib的方式最终返回的还是jsp界面,需要经过视图解析器解析。
Q3:使用jQuery如何进行一个JSON调用?
A3:如在一个MVC中,可通过“getEmployee”函数返回employ的JSON对象。
此PPT是在汪天驰的基础上完成的 感谢!
今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~
更多内容,可以加入IT交流群565734203与大家一起讨论交流
这里是技能树·IT修真院:,初学者转行到互联网的聚集地
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。