生成json的几种方式
这里是修真院后端小课堂,每篇分享文从 【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】 八个方面深度解析后端知识/技能,本篇分享的是: 【 生成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是在汪天驰的基础上完成的 感谢! 今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~ PPT链接?视频链接 更多内容,可以加入IT交流群565734203与大家一起讨论交流 这里是技能树·IT修真院:,初学者转行到互联网的聚集地 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |