JSON 与 XML区别对比

前端 潘老师 2年前 (2023-10-19) 163 ℃ (0) 扫码查看

在了解JSON和XML之间的差异之前,我们应该了解JSON和XML的定义。

什么是JSON?

JSON代表JavaScript对象表示法。JSON源自JavaScript,其中JavaScript是一种编程语言。它最初被创建用于保存可以在JavaScript中使用的结构化数据。JSON变得如此流行,以至于它用于各种类型的应用程序数据。它是向Web API发送数据的最流行方式。

JSON支持的基本数据类型包括:

  • 字符串:用单引号或双引号括起来的字符。
  • 数字:可以是整数或小数,可以是正数或负数。
  • 布尔值:布尔值可以是true或false,无需引号。
  • 空值:这里的null表示没有值,不带引号。
  • 除了基本数据类型,JSON还支持数组和对象。

数组

数组由方括号表示,值之间用逗号分隔。它们可以包含混合数据类型,即一个数组可以包含字符串、布尔值和数字等。

例如:

示例1:[1, 2, 7.8, 5, 9, 10];

示例2:[“red”, “yellow”, “green”];

示例3:[8, “hello”, null, true];

在上面的示例中,示例1是由数字组成的数组,示例2是由字符串组成的数组,示例3是由混合数据类型组成的数组。

对象

对象是JSON字典,用花括号括起来。在对象中,键和值之间用冒号“:”分隔,键值对之间用逗号分隔。键和值可以是任何类型,但键的最常见类型是字符串。

例如:{“red” : 1, “yellow” : 2, “green” : 3};

嵌套

嵌套涉及将数组和对象嵌套在彼此内部。我们可以将数组放在对象内部,将对象放在数组内部,将数组放在数组内部等。可以说JSON文件是一个大对象,其中包含许多对象和数组。

示例:

{  
  "song" :  
            {  
                 "title" :  "Hey Dude";  
                  "artist": "The Beatles";  
                   "musicians": ["John Lennon", "Paul McCratney", "Ringo Starr"];  
             }  
}  

在上面的代码中,歌曲以花括号开头。因此,歌曲是一个对象。它包含三个键值对,其中title、artist和musicians是键。

什么是XML?

XML代表可扩展标记语言。它类似于HTML,其中HTML代表超文本标记语言。HTML用于创建网站,而XML可用于任何类型的结构化数据。

XML处理数据有两种方式,即标签和属性。标签的工作方式类似于HTML。开始标签以”<“开头,以”</>”结束。开始和结束标签必须匹配。标签名称只能包含字母、数字和下划线,标签名称必须以字母开头。

例如:

<title> Hello World </title>

嵌套标签

当我们将一个标签放在另一个标签内部时,就会创建嵌套数据。

例如:

<color>  
 <red> 1 </red>  
<yellow> 2 </yellow>  
<green> 3 </green>  
</color>  

正如我们在上面的代码中所观察到的,在color标签内部,有三个更多的标签,即red、yellow和green。

JSON和XML之间的相似之处

  • 自我描述:JSON和XML都是自我描述的,因为它们的数据都是人类可读的文本。
  • 分层结构:JSON和XML都支持分层结构。这里的分层意味着值内部还可以有值。
  • 数据交换格式:JSON和XML可以被许多不同的编程语言用作数据交换格式。
  • 解析:这两种格式都可以轻松解析。
  • 检索:使用HTTP请求可以检索这两种格式的数据。用于检索数据的方法包括GET、PUT和POST。

JSON和XML之间的差异如下:

方面 JSON XML
缩写 代表JavaScript对象表示法 代表可扩展标记语言
文件扩展名 .json .xml
互联网媒体类型 application/json application/xml 或 text/xml
格式类型 数据交换 标记语言
起源 源自JavaScript 源自SGML
开源性 开源,无需付费使用 开源,无需付费使用
数据类型信息 JSON数据具有类型 XML数据没有类型
支持的数据类型 字符串、数字、布尔、null、数组 数据以字符串格式表示
数据显示能力 JSON不具备显示数据的能力 XML是一种标记语言,具备显示内容的能力
标签 JSON没有标签 XML数据用标签表示,即开始标签和结束标签
文件大小 文件大小较小,与XML相比 文件大小较大,要表示数据会比JSON创建更大的文件
读写速度 JSON读写速度更快 XML文件读写需要时间,因为学习曲线更陡峭
数组概念 JSON可以使用数组表示数据 XML不包含数组的概念
解析方法 可以通过标准JavaScript函数进行解析,必须在使用之前进行解析 用于交换数据的XML必须根据编程语言进行解析
解析难度 JSON可以轻松解析,只需要少量代码 XML解析较为困难
文件大小 文件大小较小,与XML相比 文件大小较大
数据取向 JSON面向数据 XML面向文档
安全性 比XML不太安全 比JSON更安全

版权声明:本站文章,如无说明,均为本站原创,转载请注明文章来源。如有侵权,请联系博主删除。
本文链接:https://www.panziye.com/front/9869.html
喜欢 (0)
请潘老师喝杯Coffee吧!】
分享 (0)
用户头像
发表我的评论
取消评论
表情 贴图 签到 代码

Hi,您需要填写昵称和邮箱!

  • 昵称【必填】
  • 邮箱【必填】
  • 网址【可选】