大家好,我是IT修真院深圳分院第5期学员,一枚正直善良的JAVA程序员。
今天给大家分享一下,修真院官网JAVA任务2中,什么是json?为什么要使用jsontaglib来处理json数据?
一、背景介绍
什么是json
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,因为其高性能、可读性强的原因,成为了现阶段web开发中前后端交互数据的主要数据格式,目前我们在做任务和复盘项目的时候都是使用json-taglib标签实现从Java的各种对象到json的转换
json-taglib是在2007年2月份发布的,最后一次更新发生在2008年1月,之所以很久没有发布更新,个人认为是因为两点。第一:这个自定义标签的技术已经趋于成熟,没有什么继续优化的必要了 第二:随着前后端分离,jsp已经开始慢慢淡出后端开发
为什么我们要使用json-taglib来转换并获取json数据呢?
和其它的json转换方式相比:
1、使用简单
2、转换处理灵活
3、代码可读性高
二、知识剖析
我们要如何使用json-taglib标签呢?
1、去官网下载jar包并添加到本地maven仓库中,maven仓库中心没有jar包
2、新建jsp页面,在里面就可以利用标签获取json格式的数据
3、标签只需要简单的三个:json:object(json对象)、json:array(json数组)、json:property(json对象中的属性) 。 使用这三个标签的嵌套就可以做出各式各样我们所需要的json数据,完全可以满足我们的开发需求。
三、常见问题
1、 据我在网上查找教程显示的结果上看,使用json-taglib标签并不算是现在后端开发当中最主流的转换json格式的方式,那么除了这种方式,还有什么方式可以转换json数据并达到前后端交互的目的呢?几种方式到底有什么区别,以上说的json-taglib的优点是怎么体现的呢?和其它的几种方式比起来又有哪些值得改进的地方呢?
2、既然也有很多后端开发者使用第二种方式来进行json数据的转换,那相对于json-taglib,这种方式的优点是什么?
优点:使用@ResponseBody的性能更优于json-taglib
4.解决方案
通过@responseBody注解的方式
如果在控制器的方法上标注这个注解,那么该方法返回的对象不会经过视图解析器的渲染,而是根据HTTP Request Header的内容,由前端小伙伴设置指定转换的格式,不设置的话默认请求的就是json格式,在请求到json之后,将json写入Response的Body数据区域中。
Jmeter测试性能
五、编码实战
六、扩展思考
有没有办法在注解方式下传递json格式的时候简单的完成对象属性的过滤?
1、在需要屏蔽的属性上加@jsonignore
2、json字段过滤器
七、参考文献
1.CSDN博客:https://blog.csdn.net/chivalrousli/article/details/50827735
2.张鑫师兄的PPT
八、更多讨论
Q1、使用@ResponsBody忽略属性前 后,性能会产生变化么?
答:影响微乎其微
Q2、导致性能差异的原因?
答:基于注解的json不经过视图解析层
Q3、jsontaglib可以单纯用jsp编写嘛
答:可以
今天的分享就到这里啦,欢迎大家提问和探讨!
PPT:PPT
感谢大家观看
今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~
技能树.IT修真院
“我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。
这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。快来与我一起学习吧~
作者:东
链接://www.greatytc.com/p/476e30f99e2a
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。