发表于: 2019-11-20 23:16:28
1 1066
今天完成的事:
1、编写小课堂PPT。
【修真院JAVA小课堂】生成Json有几种方式,他们之间的好处和坏处分别是什么,为什么推荐使用JsonTaglib来处理Json?
大家好,我是IT修真院北京分院第40期的学员,一枚正直纯洁善良的JAVA程序员,今天给大家分享一下,修真院官网JAVA任务二,深度思考中的知识点——生成Json有几种方式,他们之间的好处和坏处分别是什么,为什么推荐使用JsonTaglib来处理Json?
(1)背景介绍:
Json,是一种轻量级的数据交换格式,易于阅读、编写,同时也易于机器解析和生成,并有效的提升网络传输效率。
而数据传输是前后端交互的关键,给数据一个统一的格式有利于我们编写和解析数据。所以json在数据交互中有较为广泛的应用。
(2)知识剖析:
在Json出现之前,大家都在用xml来传递数据,因为xml是一种纯文本格式,所以适合在网络上交换数据。xml本身并不复杂,但是加上DTD、XSD等一大堆复杂的规范后,就会很让人头疼。
所以在Json出现后,因为其简单、方便,很快就普及了。
Json的语法规则:
数组(Array)用方括号(“[]”)表示。
对象(Object)用大括号(“{}”)表示。
键值对(name/value)组合成数组和对象。
name置于双引号中,value有字符串(在双引号中)、数字(整数/浮点数)、布尔值、null、对象(在花括号中)和数组(在方括号中)。
其中并列的数据用逗号(“,”)分隔。
如下示例,items数组用方括号,对象用花括号,name用双引号,value中字符串用双引号,并列数据用逗号分隔。
那么Json生成的方式有哪些呢?为什么推荐使用JsonTaglib来处理Json?
Json生成方式有三种:
使用Gson转化生成,提供有toJson()方法将对象转为Json字符串;
使用注解ResponseBody返回java对象或集合,自动转化生成。
使用JsonTaglib在jsp中设置字段或者嵌套生成。
那为什么推荐使用JsonTaglib来处理Json呢?
因为使用JsonTaglib与其他的最大区别就是更加灵活,修改更加方便,只需要在jsp中修改即可,不需要修改controller中的代码。
并且,在项目简单的情况下,controller中的代码简洁度并不明显,但是当项目复杂时,可以很清晰的认识到代码的简洁、易读。而这其实也就是Json诞生原因之一。
(3)常见问题:
1、使用注解ResponseBody如何生成Json?
2、如何实现使用JsonTaglib来处理Json?
(4)解决方案:
1、只需要在controller方法上添加ResponseBody注解,直接返回java对象即可,该对象就不会经过视图解析器的渲染,而是根据HTTP的RequestHeader的Accept字段内容,转换为指定格式,写入到Response对象的body数据区,如果没有额外的配置,就会返回json格式的数据。
2、首先需要添加JsonTaglib依赖,指定所在仓库。
而后将数据传入jsp,在jsp中添加声明标签,并使用JsonTaglib内的标签。
json:object,表示json数据对象;
json:property,表示json对象中的属性;
json:array,表示json数组。
对象中可以有数组,数组中也可以有对象,可以使用这三种标签嵌套生成各种格式的json数据,完全能够满足开发需求。
(5)编码实战:
(6)拓展思考:
为什么生成Json的效率反而是使用JsonTaglib时较低呢?
因为使用JsonTaglib需要页面支撑,数据是需要返回jsp页面的,而注解的形式只需要直接返回java对象即可,不需要通过jsp页面,所以效率较高。
(7)参考文献:
今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~
明天计划的事:
1、继续完成小课堂PPT,进行小课堂讲解。
2、了解任务六的要求,了解压测相关基础。
3、学习JMeter,压测JSP。
遇到的问题:
无
收获:
回顾了Json的相关知识。
评论