[示例]详解JSON和XML的相似及区别之处
作者:admin 时间:2022-5-26 8:12:37 浏览:JSON(JavaScript Object Notation)是一种数据交换格式,XML(eXtensible Markup Language)是一种自定义标记语言,用于交换数据并可以执行许多其他操作,例如数据验证。JSON 和 XML 都用于以易于理解的格式存储和交换数据。几乎所有编程语言,如Python、JavaScript、Ruby 以及各种 API(应用程序编程接口)都有 JSON 和 XML 解析器,通过这些解析器可以交换数据。尽管使用 XML 和 JSON 的目的相同,但它们都有各自的操作方式,可以在不同的场景中使用。
JSON是什么
- JavaScript Object Notation (JSON)是一种数据交换格式。简单来说,JSON 是一种以人类可读文本存储和传输数据对象的文件格式。
- 它是一种轻量级且独立于语言(即 JSON 不使用任何编程语言的语法,并且其功能不依赖于任何编程语言)的数据交换格式,用于将数据发送到各种 API。
- JSON 语法源自 javascript 编程语言,但用于读取和生成 JSON 数据的代码可以用任何编程语言编写,因为它独立于语言。而且人类很容易阅读和写作。
- 所有 JSON 文件都以.json扩展名保存。
- JSON 文件可以存储数据类型为 string、number、boolean、null 等的数据。
- JSON 使用 JSON 对象和 JSON 数组在Web上存储和传输数据。本文将进一步解释 JSON 对象和 JSON 数组。
1. JSON 对象:
JSON 对象用于在 Web 上存储和传输数据。JSON 中的对象以键值对的形式存储数据。键值对是相关元素,其中键是定义数据集的常量,而值是该数据集的变量。例如。“color”可以是一个键和颜色,如“blue”、“red”等。可以是值。
JSON 对象中的键应该是字符串,值可以是任何有效的 JSON 数据类型。JSON 对象用大括号括起来,即{}
,而键和值用冒号分隔,即:
,每个键值对用逗号分隔。
例子
{
"book_name" : "The Alchemist",
"author" : "Paulo Coelho",
"genre" : "Adventure Fiction",
}
上面是存储与书籍相关的数据的键值对。在这里,book_name、author和Genre是键,它们的相关值在 values 部分中。
2. JSON 数组:
JSON 中的数组就像任何其他编程语言中的数组一样。JSON 数组是一个对象列表,用方括号括起来,即[]
。存储在 JSON 数组中的值可以是字符串、数字、对象、布尔值或 null 的数据类型。JSON 数组可以是 JSON 对象的列表,这意味着可以将多个键值对存储在单个数组中。
例子:
[
{
"id" : "1"
"name" : "Mercedes Benz",
"available" : true
},
{
"id" : "2"
"name" : "BMW",
"available" : true
}
{
"id" : "3"
"name" : "Bentley",
"available" : false
}
]
上面的数组显示了汽车陈列室中汽车的可用性。数组的每个元素都是一个 JSON 对象,它以键值对的形式存储数据。在这里,这些对象具有有关不同汽车的信息,例如它们的 ID、名称以及它们是否出现在陈列室中。
使用 JSON 的优势
- 由于语法简单,易于读写。
- 所有浏览器都支持并被JavaScript识别。
- 几乎可以与所有编程语言一起使用,并为所有浏览器提供支持。
- 通过浏览器传输 JSON 文件要快得多。
- 由于 javascript 的日益普及,JSON 的使用一直在增加。
- JSON 支持不同的数据类型和键值对,使其易于理解。
使用 JSON 的缺点
- JSON 不支持命名空间,无法扩展。
- 它缺乏格式验证,这意味着不正确的数据结构可以传递到您的API中。
- 与 XML 相比,JSON 的安全性较低。
XML是什么
- XML 代表可扩展标记语言,旨在存储数据并广泛用于跨网络和各种 API 分发数据。
- 标记语言是一组符号,以便人类和计算机易于理解。
- XML 旨在存储和传输数据,但不用于呈现数据。
- 它被广泛用于数据交换,因为几乎每种编程语言都有一个解析器。而且很容易从 XML 中获取和验证数据。
- XML 具有存储命名空间的规定。命名空间是一种可以将元素和属性名称分配给组的机制。这使得区分来自不同来源的元素变得容易。
- 元数据是关于数据的数据。XML允许在其文件中存储元数据,从而提供有关文件来源或任何其他元数据的信息。在某种程度上,XML 标签也可以被认为是元数据,因为它们解释了它们持有什么样的数据/属性。
- 它广泛用于当今的虚拟世界,如电子银行、网上购物等。
- XML 区分大小写并使用标签来存储数据。
- 在 XML 中处理数据的两种方法是标签和属性。
- XML 中的标签类似于 HTML 中的标签。标签以 <> 开头,以</>结尾。开始和结束标记的名称必须匹配。
例子:
<rainbow>
<violet> 1 </violet>
<indigo> 2 </indigo>
<blue> 3 </blue>
<green> 4 </green>
<yellow> 5 </yellow>
<orange> 6 </orange>
<red> 7 </red>
</rainbow>
上面的示例让我们了解了 XML 文件格式以及标签在 XML 中的使用方式。这里的<rainbow>
是主标签,还有其他子标签,如<violet>
、<red>
显示数值。
使用 XML 的优势
- XML 将数据与普通的HTML 文档分开。
- 它简化了平台交换过程。
- 支持不同的 API,几乎每种编程语言都有 XML 解析器。
- 可以在 XML 中创建用户定义的标签。
- XML 做了 JSON 做不到的事情——它可以修饰它并允许 Java 和 C++ 等语言为可能不是基于 Web 的应用程序创建接口。
使用 XML 的缺点
- XML 中使用的语法很复杂,并且使用标记使其与其他基于 Web 的编程语言相似,这使其令人困惑。
- XML 中没有数据类型支持。
- XML 文件很庞大并且需要更大的大小。
XML 与 JSON 的结构
1. XML的结构
- XML 以标签和属性两种方式处理数据。
- 这些标签区分大小写。
- XML 中的标签类似于 HTML 中的标签。标签以 <> 开头,以</>结尾。开始和结束标记的名称必须匹配。
- 标签名称只能是字母、数字和下划线,且标签名称只能以字母开头。
例子:
<root>
<child>
<subchild>.....</subchild>
</child>
</root>
以上是 XML 标签的结构。它显示了 XML 标记的层次结构。XML 遵循树数据结构。树从根开始,分支到较低级别的树。<root>标签位于树的根部。
2. JSON的结构
- JSON 以 JSON 数组和 JSON 对象两种方式处理数据。
- JSON的数据结构层次是map格式。因为它处理键值对中的数据。
- 它支持字符串、数字、布尔值、数组和空值等数据类型。
- JSON 数组是一个对象列表,括在方括号中,即[]。
- JSON 中的对象是将数据存储在键值对中的字典。JSON 对象中的键应该是字符串,值可以是任何有效的JSON 数据类型。
- JSON 对象用大括号括起来,即{},而键和值用冒号分隔,即:,每个键值对用逗号分隔。
例子:
{
"student": [
{
"id":"01",
"name": "Tom",
"lastname": "Price"
},
{
"id":"02",
"name": "Nick",
"lastname": "Thameson"
},
{
"id":"03",
"name": "Ron",
"lastname": "Weasley"
}
]
}
这里,学生是以键值对的形式存储学生信息的数组。
JSON 和 XML 之间的相似之处
- JSON 和 XML 都具有在 Web 上存储和传输数据的相同目的。
- 这些是人类可读的、易于理解的和自我描述的。
- 两者都有大多数编程语言和API的解析器。JSON 和 XML 中的代码被转换为使用它的编程语言的编译器可以理解的代码。
- 可以使用 HTTP 请求从 Web 服务器获取 JSON 和 XML 中的数据。HttpRequests用于从服务器请求数据。用于获取数据的方法是GET、PUT和POST。
- JSON 和 XML 支持层次结构,即它们将值存储在值中。
- JSON 和 XML 都是开源软件,软件代码可公开访问,任何人都可以查看、修改和分发代码。
JSON 和 XML 的区别
现在让我们详细看看 XML 与 JSON:
JSON | XML |
---|---|
JSON 代表 JavaScript 对象表示法。 | XML 代表可扩展标记语言。 |
JSON 文件以.json扩展名存储。 | XML 文件以.xml扩展名存储。 |
它是从Javascript扩展而来的。 | 它是从SGML(标准通用标记语言)扩展而来的。 |
它是一种使用键值对表示对象的方法。 | 它是一种标记语言,使用标记结构来表示数据项。 |
JSON 是面向对象的,因为它是 javascript 对象的文本表示。它基本上是 JavaScript Notation 中的一个对象。 | XML 是面向文档的。XML 从 SGML 扩展而来,保留了其作为文档格式的原有优势,并支持文档表示所需的混合标记。 |
以数组和键值对形式存储在 JSON 中的数据。 | XML 以标签和属性的形式存储数据。 |
与 XML 相比,JSON 文件由于其简单的语法而易于理解。 | 由于标签结构复杂,XML 文件与 JSON 相比难以阅读和解释。 |
它不支持评论。 | 它支持评论。 |
它不支持命名空间和元数据。 | 它支持命名空间和元数据。 |
JSON 文件占用较小的大小,因为它们没有标签。 | XML 文档体积庞大且体积庞大。它的标签结构使它们看起来很复杂。 |
JSON 在浏览器端技术中是首选,因为它的文件可以在更短的时间内传输。 | XML 在服务器端技术中是首选,因为它提供了验证数据的功能。 |
由于格式简单且文件大小较小, JSON不那么冗长且速度更快。JSON 的这些特性使其在最近变得更加流行。JSON 流行的主要原因之一是越来越多地使用 Javascript。 | XML 的复杂结构使其解析速度慢并且需要更多的内存。这降低了 XML 的流行度。但大多数情况下,由于高安全性和元数据规定,它是首选。 |
JSON 文件格式类似于地图数据结构。该映射类似于键/值对,在需要解释和可预测性时很有用。 | XML 文件格式类似于树数据结构。表示数据的树表示。这使得处理 XML 成为一项乏味且耗时的任务。 |
总结
- JSON 与 XML 有许多相似之处和不同之处。
- JSON 和 XML 都用于在 Web上传输数据。
- 由于与 JavaScript 的关联,JSON 目前越来越受欢迎。
- 作为一种标记语言,XML 可以定义一组规则和结构以使数据可互换。
- JSON 是首选,因为可以通过浏览器轻松交付更快、更轻量级的文件。
相关文章
- 站长推荐