XML vs JSON 浅析
结构对比
XML
<courses>
<course>
<id>0001</id>
<name>Operating System</name>
<pic>0001.png</pic>
<count>20</count>
<content>有关操作系统的基础知识课程</content>
</course>
.....
</courses>
JSON
{
“name”:”A”,
“age”:30 ,
“address”:
{
“city”:”Beijing",
“street”:”Chaoyang",
“postcode”:10025
}
}
JSON数组的表示方式:
[{json对象},{json对象}]
定义
- XML (eXtensible Markup Language) 可扩展标记语言。是一种用于标记电子文件使其具有结构性的标记语言。标记是指计算机能理解的信息符号,可以用于标记数据,定义数据类型等等,XML允许用户根据自己情况自定义标签及其语义。
- JSON(JavaScript Object Notation) JavaScript对象表示法。是一种轻量级的数据交换格式,语法简易,语法规则如下:
- 数据在键值对中
- 数据由逗号分隔
- 花括号保存对象
- 方括号保存数组
优缺点对比
XML
优点
- 格式统一,符合规范。XML由严格的标签定义,每组标签都是按照
<xxx>
开始<\xxx>
结束 - 可扩展性强,可以利用自定标签呈现任意的数据对象
- 处理复杂结构表现优异
- 数据表示上,可以利用多级标签清晰的呈现复杂结构的数据对象,即树的结构,且树已经有很多成熟的处理算法
- 数据解析上,XML常用的解析方法之一的SAX提供了事件驱动的处理方式,可以将一篇巨大的XML一点点呈现,不必一次性全部读入内存,而JSON必须要一次读入,这样对大数据的处理并不合适
- 广为流传,深入人心
- 这也是缺点,导致了XML的大量的误用和滥用。如移动端的数据传输,滥用XML会造成流量浪费
缺点
- 体积庞大,传输占用流量较多
- 解析不如JSON速度,要考虑各种各样的标签以及它们之间的父子关系
- 由于不同的解析方式,可能会产生大量的代码重复以适应多种解析方式
JSON
优点
- 轻量级格式,体积小,传输省流量
- 解析速度快
- 支持Java,PHP等多种语言,便于服务器端解析。JSON格式能够直接为服务器端代码使用, 大大简化了服务器端和客户端的代码开发量
缺点
- 对复杂数据对象描述能力较弱,Json在描述复杂数据对象时,大量的括号以及‘@’,‘#’等符号降低了可读性
- 推广程度不如XML久远
选择建议
- 在互联网数据传输中,如移动端和服务器间交互,可以考虑使用Json,节约流量
- 描述复杂数据对象时,建议使用XML;简单的数据对象可以使用Json