当前位置:首页>开发>正文

JAVA为什么要返回JSON数据

2023-04-30 10:37:29 互联网 未知 开发

JAVA为什么要返回JSON数据?

JAVA为什么要返回JSON数据

这个问题,更准确提问应该是:数据请求为什么要返回json数据,特别是前端与后端的交互,JAVA只是众多编程语言的一种,现在不管用什么编号语言,大部分后端与前端基本是通过json数据进行交互。

JSON是什么?

前几天分享了《Spring Boot 返回 JSON 数据,一分钟搞定!》,好些人对 JSON 还没有一个清晰的认识,今天栈长带大家来认识一下什么是JSON。

有一种叫做JSON (JavaScript Object Notation) 的轻量级数据交换格式能够替代XML的工作。它就是JSON。

数据格式比较简单, 易于读写, 格式都是压缩的, 占用带宽小,易于解析这种语言。

客户端JavaScript可以简单的通过eval()进行JSON数据的读取,包括ActionScript, C, C#, ColdFusion,Java,JavaScript,Perl,PHP,Python,Ruby等语言服务器端语言, 便于服务器端的解析。

各语言对JSON支持的特别好,自从Ajax的流行,JSON格式传输就更流行了。JSON常被用作序列化,推荐阅读:关于Java序列化你应该知道的一切。

如果到这里你还不明白?

JSON是什么,那么我就发大招了!

其实我在为公司面试的时候,我经常有提到,假如我不知道JSON是个什么玩意?你怎么告诉我,让我知道是个什么东西。(下面都是我的个人理解,因理解因人而异,受用即可!)

问了这么多人,其实结果不是我想要的,大多数的答案有这些。

它是前端和后台交互用的。 它是键值对的。

以上2点比较多。还有一些乱七八糟的完全偏离了JSON。那么它应该是怎样的?应该这么回答,个人认为!

首先,它只是一个字符串,它只是一个有规则的字符串。(重点)然后它的表达(表现)形式是键值对的。其实非常类似Java语言里的Map,Objective-C里的字典,其他语言都有对应的,我说实话其他语言我不知道!

我为什么用MapString泛型,因为理论上它的键值对应该都是字符串,Why?这个问题问的好,我可以这么回答你,因为它本身就是字符串。

上面说的理论上表达方式,那么实际目前我们用到的键值对支持什么呢?可以支持String、Number、Array以及Boolean、null什么的。

它的作用是用来交互的,不一定Web项目的前后端交互也可以接口,配置文件,文件存储等等都OK。目前移动端比较火,一般的项目都会用JSON来传输。

它能带来什么?

简洁、简单、体积小等。

上手容易,高效。

跨语言,目前移动端Android、IOS一般项目构造都是其他语言提供接口(JSON方式),移动端读取接口的方式开发。 ….

它和XML对比?

可读性

看了网上的各种帖子,有说可读性相当,不过基本是说XML可读性好,我认为还凑合。可以打平手。

可扩展性

有人说,“XML天生有很好的扩展性,JSON当然也有,没有什么是XML能扩展,JSON不能的。

不过 JSON在Javascript主场作战,可以存储Javascript复合对象,有着XML不可比拟的优势”。我赞同一半,我觉得这些帖子都是老帖子,XML可以灵活扩展是因为各种语言有支持的其他Jar包,类库等。

但自从JSON火起来后,JSON的支持包,类库等,相信每个语言都很多。像Java就有Jackson、goson、json-lib、FastJson等等多的去了。

编码难度

XML有有DOM,SAX,STAX等解析技术,JSON也有我上面说的那些,都OK。

解码难度

同上。

解码编码效率

呵呵!解析XML有专用CPU、你造吗?


JAVA为什么要返回JSON数据

第一:json是一种轻量级的数据交换格式,现在之所以要用json,一方面是为了服务器端发送到客户端的数据更少,加快传输和响应速度。另一方面浏览器解析json格式的数据相对XML更加容易。

第二:返回什么格式很大程度取决于前后端的约定,不一定是要返回json格式,现在还是有企业在接口入参和出参使用XML格式的。

第三:如果你解析过XML,你会发现其标签解析比较麻烦,json这种数据格式,对于Java开发来说,看起来很友好,感觉更像缩减版的类。

这里仅使用json和xml做对比,希望回答对你有所帮助。


JAVA为什么要返回JSON数据

其实不应该这么问的。

我们都是在服务传输数据时,基本都选择了json来传输。

摒弃了早些年使用的xml格式,为什么呢?

其实可以做个对比:

可读性方面,json语法简单,而xml是规范的标签形式,易于理解。

可扩展性方面,json要比xml有更强的可扩展性,json在js处理方面更加有优势。

编码难度方面,json可编码性要比xml更强,而xml支持dom、dom4j、sax等方式进行解析。

对于要求描述性强的可以去选择xml。

对于数据传输方面可以直接用json,json格式与语言无关,也更加易于阅读和编写。

同时,json也易于机器解析和生成,有效提升网络传输效率,服务端也可以做压缩传输,在与java对象转换上更加具备优势。

恰恰相反,不是Java要返回JSON格式数据,记得10多年前,Ajax返回的都是html片段为主,如果是数据要求,也是以XML居多。

JSON最早是前端需求导致,JSON数据其实就是JavaScript能解析的对象数据表示格式。这样的数据返回,前端直接能用或者JSON.parse一下就能使用,不再需要其他解析手段,比较简单。

当然,JSON数据摒弃了XML的标签,体积小很多,网络传输也更有优势。

最新文章