JSON与XML有什么区别:比较、特性和示例

2021年11月28日23:00:33 发表评论 1,254 次浏览
JSON与XML有什么区别:比较、特性和示例
JSON与XML差异比较

XML(可扩展标记语言)已经存在 3 多年了,它是每个 Web 应用程序不可或缺的一部分。无论是配置文件、映射文档还是模式定义,XML 通过为数据提供清晰的结构并帮助动态配置和加载变量,使数据交换变得更加轻松!

JSON与XML哪个更好?JSON 以一种简洁且易于理解的映射格式(键/值对)存储其所有数据。据说 JSON 正在慢慢取代 XML,因为它有几个优点,例如易于数据建模或直接映射到域对象、更具可预测性和易于理解的结构。但是,许多使用过两者的开发人员并不完全同意这一点!通过本文,你将详细了解 JSON 和 XML 之间的区别。

JSON与XML有什么区别

首先,JSON 只是一种数据格式,而 XML 是一种标记语言。你实际上可以通过 XPath 进行查询并获得答案。同样,可以在 XML 中添加元数据、属性和名称空间。此外,XML 与 XSL、XSD、XQuery 等形成了强大的组合。这些是一些重要的特性,它们仍然使 XML 与众不同。

在任何情况下,如果项目需要文档标记和元数据信息,最好使用 XML,否则对于更有组织的数据交换 JSON 可能是你的首选。

什么是 JSON? 

作为 XML 数据传输的更好选择,JSON(JavaScript Object Notation)肯定需要更少的编码和更小的尺寸,从而可以更快地处理和传输数据。此外,虽然它是用JavaScript编写的,但它是独立于语言的。但是,这就是 JSON 所能做的。它没有 XML 具有的任何强大的验证和与模式相关的功能。

那么,是什么让 JSON 如此流行呢?

JSON与XML差异比较 - 随着基于 SOAP/WSDL 模型的 REST API 的流行,JSON 在 API 代码和 Web 服务的编程中获得了动力。它是基于文本的、轻量级的并且具有易于解析的数据格式,不需要额外的解析代码。因此,JSON 有助于加快数据交换和 Web 服务结果。因此,对于只需要返回大量数据并显示相同的 Web 服务,理想的选择是 JSON!

JSON 的历史

Douglas Crockford 于 2001 年 3 月首先指定的实时数据格式。服务器到浏览器的通信协议,不使用 Flash 或 Java 小程序等浏览器插件。其官方网站于 2002 年推出,到 2005 年,雅虎开始提供 JSON 格式的网络服务。它很快在 2013 年成为 ECMA 国际标准。 最后,最新的 JSON 格式标准于 2017 年发布。 

JSON 的特点

  • 用法很简单:   JSON API 提供了高级外观,从而简化了常用用例。
  • 更好的性能:   JSON 非常快,因为它占用的内存空间非常小,适用于大型对象图或系统。
  • 它是免费的:  JSON 库是开源的,可供所有人免费使用。
  • 无需创建映射:  Jackson API 为许多要序列化的对象提供默认映射。
  • Clean JSON: 创建易于阅读的干净且兼容的 JSON 结果。
  • 无依赖性:  JSON 库不需要任何其他库进行处理。

JSON与XML差异比较 - JSON 的优点

  • 它支持所有浏览器。 
  • 容易掌握。
  • 它的语法很简单。 
  • 可以使用 eval() 函数在 JavaScript 中解析
  • 创建和操作很容易。 
  • 所有主要的 JavaScript 框架都提供对 JSON 的支持。
  •  大多数后端技术都支持 JSON。 
  • 结构化数据的传输和序列化是使用网络连接完成的。

JSON与XML哪个更好?JSON 的缺点

  • 由于不支持命名空间,JSON 的可扩展性很差。
  • 有限的开发工具支持。
  • 它提供对形式语法定义的支持。 

什么是 XML?

JSON与XML有什么区别?XML(可扩展标记语言)是数据交换的默认选择,因为几乎每种语言都有一个解析器,无论是 Java、.net 还是其他任何语言。从 XML 获取特定数据很容易,并且有可以验证 XML 的模式。XML 在当今的“电子”世界中被广泛使用——银行服务、在线零售商店、集成工业系统等。

可以在 XML 中放入许多不同类型的信息,而且它仍然很简单。以下是 XML 的一些常见好处:

  • 使用 XSLT 处理器基于处理逻辑创建交互式网页、存储和呈现内容数据给用户。
  • 提供以可重用和可移植格式定义元数据的规定。
  • 更准确的网络搜索结果,因为数据存储在标签内。
  • 使 b2b 交易和 b2c 交易等信息交换变得容易且更易于访问。
  • 可以自动执行多个 Web 任务,从而提高效率。

如果你广泛地使用过 XML,你就会明白 XML 的优点和缺点。最大的缺点是使用 SAX 或 DOM 的复杂解析器代码,这对开发人员来说是额外的开销。

XML 的历史 

它是 SGML 的一个应用。它是由一个从未见过面的 11 名成员组成的工作组编写的;该设计结合了每周电话会议和电子邮件。其初稿于 1996 年 8 月至 11 月在 Sun Microsystems 上发布,XML 的第一个版本于 1998 年 2 月发布。 

XML 的优点

  • 借助 XML,可以在不同平台之间快速完成数据交换。因此,它使文档可以跨系统和应用程序传输。 
  • XML 将数据与 HTML 分开
  • XML 简化了平台更改过程。

XML 的缺点

  • XML 需要一个处理应用程序。
  • XML 语法有时会令人困惑,因为它类似于其他替代方案。 
  • 没有内在数据类型支持。
  • XML 语法是多余的。
  • 它不允许用户创建他的标签。

XML 与 JSON 的结构

让我们看看每一个的结构来更欣赏上面的一点:

XML(可扩展标记语言)JSON(JavaScript 对象表示法)
01 Adam Cloud computing </technology >
Development
{ "employees": [ { "id": "01", "name": "Adam", "technology": "Cloud computing", "title": "Engineer", "team": "Development" } }

JSON与XML有什么区别?正如我们所见,标签结构确实增加了一些复杂性,而 JSON 格式看起来就像阅读一个简单的文本!

此外,随着Node JS 等基于 JavaScript 的框架越来越被接受,当前端代码是 JavaScript 时,获取 JSON 格式的数据可以很容易地将数据加载到对象树中。

JSON与XML哪个更好?JSON 得分高于 XML 的另一种情况是,当你想要将数据从 Web 应用程序导出到数据库时。JSON 是此类转换的完美文件格式,因为每种编程语言都能够解析 JSON——一种真正开放的标准和可互操作的格式!

随着云计算和 API 的出现,JSON 在未来将发挥更大的作用,现在对正确存储和传输数据的需求非常大,而且未来可能会进一步增长。

我们已经看到 JSON 和 XML 各有优缺点,并比较了它们如何在不同的 Web 应用程序场景中良好运行。让我们总结以上几点,并了解更多差异,让你更清楚,下面是JSON与XML差异比较综合表格:

参数 XML可扩展标记语言)JSON(JavaScript 对象表示法)
XML 是一种标记语言,而不是一种编程语言,它具有用于定义元素的标签。JSON 只是一种用 JavaScript 编写的格式。
数据存储XML 数据存储为树结构。例子 -
2001 Varsha 2002 Akash
数据像带有键值对的映射一样存储。例子 -{“employees”: [ {"id":"2001", “name":"Varsha"}, {"id":"2002", "name":"Akash"} ]}
加工它可以执行处理和格式化文档和对象。它不做任何处理或计算
速度体积大、解析慢,导致数据传输速度变慢非常快,因为文件的大小相当小,JavaScript 引擎的解析速度更快,因此数据传输速度更快
命名空间支持支持命名空间、注释和元数据没有提供命名空间、添加评论或编写元数据
文件尺寸 文档体积庞大且文件很大,标签结构使其阅读起来既庞大又复杂。简洁易读,没有多余或空的标签或数据,使文件看起来简单。
数组支持不直接支持数组。为了能够使用数组,必须为每个项目添加标签。science maths computers支持可以作为访问的数组 x = student.subjects[i]; where “subjects” is an array as – “subjects”: [“science”, “math”, “computers”]
数据类型支持支持许多复杂的数据类型,包括图表、图像和其他非原始数据类型。JSON 仅支持字符串、数字、数组、布尔值和对象。甚至对象也只能包含原始类型。
UTF 支持XML 支持 UTF-8 和 UTF-16 编码。JSON 支持 UTF 和 ASCII 编码。
安全XML 结构容易受到一些攻击,因为默认情况下启用外部实体扩展和 DTD 验证。当这些被禁用时,XML 解析器更安全。JSON 解析几乎一直都是安全的,除非使用 JSONP,否则会导致跨站请求伪造 (CSRF) 攻击。
数据处理虽然 AJAX 中的 X 代表 XML,但由于 XML 中的标签,不必要地消耗了大量带宽,使得 AJAX 请求变慢。由于数据是在 JSON 中串行处理的,将它与 AJAX 一起使用可确保更快的处理,因此更可取。使用 eval() 方法可以轻松操作数据。

结论

JSON与XML有什么区别?由于 JSON 和 XML 似乎解决了一些相似的目的,因此比较主要基于各自的特性和优点。最重要的是,如果你有简单的数据交换,不需要担心语义和验证,请选择 JSON。但是,即使使用 JSON,也必须学习 XML 和相关技术,才能做的不仅仅是数据交换和快速处理!JSON 在与“旧就是金”XML 的力量相提并论之前还有很长的路要走。

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: