在网络中进行数据传输,目前比较流行的两种数据格式:json和xml。

数据传输的方向有两个,一个是从前端传到后端,再一个就是从后端转向前端。设想一下我们的运行环境。我们有数据库存放数据。我们有程序来读写数据库。对于程序以外的程序来说,这些数据都是放在黑盒子里面的。程序数据出了黑盒子以后,就需要有一个传输的格式让各种程序都可以理解。这就是json和xml在网络传输中的用途1

JSON的定义

  一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换。JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为。

XML的定义

扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 XML是标准通用标记语言 (SGML) 的子集,非常适合 Web 传输。XML 提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。

JSON 和 XML 优缺点的比较2

1、可读性:JSON和XML的可读性可谓不相上下,一边是建议的语法,一边是规范的标签形式,很难分出胜负。

2、体积:JSON相对于XML来说, 数据的体积小,传递速度更快。

3、速度:传递速度方面,JSON的速度要远远快于xml。

4、解码难度:XML的解析得考虑子节点父节点,让人头昏眼花,而JSON的解析难度几乎为0。

XML使用

一个描述书籍的XML文档可能如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE note SYSTEM "book.dtd">
<book id="1">
    <name>Java核心技术</name>
    <author>Cay S. Horstmann</author>
    <isbn lang="CN">1234567</isbn>
    <tags>
        <tag>Java</tag>
        <tag>Network</tag>
    </tags>
    <pubDate/>
</book>

XML有固定的结构,首行必定是<?xml version="1.0"?>,可以加上可选的编码。紧接着,如果以类似<!DOCTYPE note SYSTEM "book.dtd">声明的是文档定义类型(DTD:Document Type Definition),DTD是可选的。接下来是XML的文档内容,一个XML文档有且仅有一个根元素,根元素可以包含任意个子元素,元素可以包含属性,例如,<isbn lang="CN">1234567</isbn>包含一个属性lang=“CN”,且元素必须正确嵌套。如果是空元素,可以用<tag/>表示3

XML使用嵌套结构的数据表示方式,支持格式验证;XML常用于配置文件、网络消息传输等。

JSON是JavaScript Object Notation的缩写,它去除了所有JavaScript执行代码,只保留JavaScript的对象格式。一个典型的JSON如下:

{
    "id": 1,
    "name": "Java核心技术",
    "author": {
        "firstName": "Abc",
        "lastName": "Xyz"
    },
    "isbn": "1234567",
    "tags": ["Java", "Network"]
}

JSON是轻量级的数据表示方式,常用于Web应用。


  1. https://zhuanlan.zhihu.com/p/78991307 ↩︎

  2. https://blog.csdn.net/qqw666666/article/details/123838490 ↩︎

  3. https://www.liaoxuefeng.com/wiki/1252599548343744/1305161429418018 ↩︎