JSON VS XML VS HTML
一、JSON 和 XML 的定义
- XML
可扩展标记语言(英语:Extensible Markup Language,简称:XML),用来传输及存储数据信息,不用来表现或展示数据。使用 DTD(document type definition)文档类型定义来组织数据,格式统一,跨平台和语言,非常适合 Web 传输。
- JSON
JSON 是一种轻量级的数据交换格式(非编程语言),具有良好的可读和便于快速编写的特性。JSON 是一个 JavaScript 的严格子集,利用 JavaScript 中一些模式来表示结构化数据。
二、优缺点汇总
1、XML 的优缺点
优点:
- 格式统一,符合标准。
- 容易与其他系统进行远程交互,数据共享比较方便。
缺点:
- XML 文件庞大,文件格式复杂,传输占带宽。
- 服务器端和客户端都需要花费大量代码来解析 XML,导致服务器端和客户端代码变得异常复杂且不易维护。
- 客户端不同浏览器之间解析 XML 的方式不一致,需要重复编写很多代码。
- 服务器端和客户端解析 XML 花费较多的资源和时间。
2、JSON 的优缺点
优点:
- 数据格式比较简单,易于读写,格式都是压缩的,占用带宽小。
- 易于解析,客户端 JavaScript 可以简单的通过 eval() 进行 JSON 数据的读取。
- 支持多种语言,包括 ActionScript、C、C#、ColdFusion、Java、JavaScript、Perl、PHP、Python、Ruby 等服务器端语言,便于服务器端的解析。
- 在 PHP 世界,已经有 PHP-JSON 和 JSON-PHP 出现了,偏于 PHP 序列化后的程序直接调用,PHP 服务器端的对象、数组等能直接生成 JSON 格式,便于客户端的访问提取。
- JSON 格式能直接为服务器端代码使用,大大简化了服务器端和客户端的代码开发量,且完成任务不变,并且易于维护。
缺点:
- 没有 XML 通用。
- 数据描述性不如 XML。
三、优缺点对比
1、XML 与 JSON
对比范畴 | 比较结果 |
---|---|
可读性方面 | XML 可读性较好 |
数据描述方面 | XML 对数据的描述性更好 |
数据体积方面 | JSON 数据的体积小 |
传输速度方面 | JSON 传输速度要远远快于 XML |
数据交互方面 | JSON 与 JavaScript 的交互更方便 |
编码难度方面 | JSON 的编码比 XML 容易 |
解码难度方面 | JSON 的解析难度更低(XML 的解析得考虑子节点父节点) |
XML 需要使用 XML 解析器来解析,JSON 可以使用标准的 JavaScript 函数来解析。
- JSON.parse(): 将一个 JSON 字符串转换为 JavaScript 对象。
- JSON.stringify(): 于将 JavaScript 值转换为 JSON 字符串。
2、XML 与 HTML
- HTML 用来显示数据,XML 用来存储和传输数据。
- HTML 一些标签可以不成对出现,XML 标签必须成对出现。
- HTML 中空格会被删减,XML 中空格不会被删减。
- HTML 特殊符号可以直接使用,XML 中的特殊符号必须用编码表示。
四、实例对比
- XML 文档必须包含根元素,该元素是所有其他元素的父元素。
- XML 文档的元素形成了一颗文档树,这棵树从根部开始并扩展到树的底端。
- XML 文档在可读性和对数据的描述性方面,具有自我描述性的语法,语言更加贴近说明结构。
<?xml version="1.0" encoding="utf-8" ?>
<country>
<name>中国</name>
<province>
<name>福建</name>
<citys>
<city>福州</city>
<city>厦门</city>
</citys>
</province>
<province>
<name>广东</name>
<citys>
<city>广州</city>
<city>珠海</city>
<city>汕头</city>
</citys>
</province>
</country>
- JSON 更像一个数据块,通过索引 country.provinces[1].name 来读取“广东”这个值,适合机器阅读。
var country =
{
name: "中国",
provinces: [
{
name: "福建",
citys: {
city: ["福州", "厦门"]
}
},
{
name: "广东",
citys: {
city: ["广州", "珠海", "汕头"]
}
}
]
}