xml - JSON 和 XML 有可比性吗?

标签 xml json data-structures comparison

<分区>

我听到有人说“JSON 与 XML 相同”。 JSON 和 XML 有可比性吗?它们的主要异同是什么?

有一些 StackOverflow 问答涉及比较 JSON 和 XML [1] [2] [3] [4] [5] [6] [7] ,但没有一个提供一个很好的、单一的引用点,重点关注它们的主要相似点和不同点。

最佳答案

什么是 JSON?

JSON(JavaScript 对象表示法)is a lightweight text-based open standard designed for human-readable data interchangeJSON is a text format that is completely language independent but uses conventions that are familiar to programmers .

借用 JSON sample from Wikipedia ,一个人的 JSON 表示可能如下所示:

{
    "firstName" : "John",
    "lastName"  : "Smith",
    "address"   :
    {
        "street": "21 2nd Street",
        "city"  : "New York",
        "state" : "NY",
        "zip"   : "10021"
    },
    "phoneNumber":
    [
        {
            "type"  : "home",
            "number": "212 555-1234"
        },
        {
            "type"  : "fax",
            "number": "646 555-4567"
        }
    ]
}

什么是 XML?

XML(可扩展标记语言)is a simple, very flexible text format derived from SGML。根据 Wikipedia 的说法,XML 是 一组以机器可读形式对文档进行编码的规则。 [...它的目标] 强调 Internet 上的简单性、通用性和可用性。它是一种文本数据格式[...]。

再次借用 XML sample from Wikipedia ,一个人的 XML 表示可能如下所示:

<person firstName="John" lastName="Smith">
    <address street="21 2nd Street" city="New York" state="NY" zip="10021" />
    <phoneNumber type="home" number="212 555-1234" />
    <phoneNumber type="fax"  number="646 555-4567" />
</person>

比较

基于这些简单的定义,可以理解 JSON 和 XML 具有可比性。如果您的目标是使用一个或另一个在 Internet 上进行简单的数据交换,如上面的简单示例所示,那么这个目标肯定是可以实现的,而且 JSON 和 XML 实际上在很大程度上是可比较的。

但是,当您深入研究每个规范时,您会开始意识到它们是完全不同的标准,但目标相似;每个都有重叠的用例,其中一个比另一个更适合,并且它们是等效的解决方案(选择取决于特定用例)。

The Fat-Free Alternative to XML 虽然可能有点偏颇,但 from the JSON site 列出了一些很好的比较点。还有 XML vs JSON !!! Dont compare.JSON Pros and Cons 博客条目,其中包含一些要点以供比较。

相似点

  • 可用于文本数据交换;没有人类不易阅读的晦涩格式。
  • 允许以结构化方式表示数据,提供一定程度的数据关系。
  • 使用 Unicode 进行国际化。
  • 编程语言无关;可用于多种编程语言。
  • 可用于连接异构系统;只要所有系统都使用约定的数据表示契约(Contract),异构系统之间的通信是可能的。
  • 开放标准;获得规范不需要任何管理机构的成员资格(JSON 在 IETF RFC #4627 中定义,XML 定义为 W3C specification)并且没有限制性许可(JSONXML)。

差异

  • JSON 具有简单的表示法,开发人员可以快速采用。
  • JSON 的轻量级特性有助于通过减少性能瓶颈来改善互联网用户体验。
  • JSON 的简单表示法是从 JavaScript 借来的,这使得将数据表示反序列化/序列化为 common data structures 变得更加容易和高效。
  • JSON 在 ECMAScript, 5th edition 中可用,使其可用于具有集成 ECMAScript 引擎的所有应用程序(最值得注意的是网络浏览器)。
  • XML 是一个文档 markup language ,提供赋予数据额外意义的语义; JSON 没有这个能力。
  • XML 具有范围更广的规范,涵盖诸如用于数据定义和验证的 schemasnamespacesstylesheetstransformationsdata expressions 等。
  • XML 存在的时间更长,并被许多企业广泛采用;为其提供更好的文档、编程语言支持、工具支持、社区体验、现成产品支持等。
  • XML 的稳健标准使其成为灵活(有时是严格的......以一种有益的方式)企业对企业通信的更好解决方案。

关于xml - JSON 和 XML 有可比性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7823690/

相关文章:

java - 使用 SQL 创建和构建复杂的座位结构?

algorithm - 如何从文件中删除重复项?

c - 有没有成熟的二元决策图工具可用?

xml - Unix - 将包含 XML 文件的文件拆分为单个文件

xml - Kotlin:格式化字符串

java - eXist-db 嵌入模式备份/恢复

java - 在Java中,有没有办法可以从JSONObject转到JSONStringer,反之亦然?

json - 如何使用 SQL 解析 JSON 列

xml - 在 xslt 中添加前导零记录

javascript - 如何在 Google Chrome 扩展中使用 jQuery ajax?