JSON和XML是否可比?

Dan*_*ruz 17 xml comparison json data-structures

我听说有人声称"JSON与XML相同".JSON和XML可比吗?各自的主要相同点和不同点有哪些?

有一些StackOverflow Q&As涉及比较JSON和XML [1] [2] [3] [4] [5] [6] [7],但没有一个提供一个好的,单一的参考点,专注于它们的主要相似之处和差异.

Dan*_*ruz 30

什么是JSON?

JSON(JavaScript Object Notation)is a lightweight text-based open standard designed for human-readable data interchange.JSON is a text format that is completely language independent but uses conventions that are familiar to programmers.

从Wikipedia借用JSON样本,人的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"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

什么是XML?

XML(可扩展标记语言)is a simple, very flexible text format derived from SGML.根据维基百科,XML是a set of rules for encoding documents in machine-readable form. [... It's goals] emphasize simplicity, generality, and usability over the Internet. It is a textual data format[...].

再次从Wikipedia借用XML示例,一个人的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>
Run Code Online (Sandbox Code Playgroud)

对照

基于这些简单的定义,可以理解的是,可以得出JSON和XML具有可比性的结论.如果您的目标是通过互联网使用其中一个进行简单的数据交换,如上面的简单示例所示,那么这个目标肯定是可以实现的,而JSON和XML实际上大部分都是可比较的.

但是,当您深入了解每个规格时,您开始意识到它们是完全不同的标准,具有相似的目标; 每个都有重叠的用例,其中一个比另一个更好,并且它们是等效的解决方案(选择是特定用例的问题).

虽然它可能只是有点偏颇,The Fat-Free Alternative to XML 但从JSON网站列出了一些比较好的点.还有的XML vs JSON !!! Dont compare.JSON Pros and Cons用比较一些要点博客条目.

相似

  • 可用于文本数据交换; 没有人类不易阅读的模糊格式.
  • 允许以结构化方式表示数据,从而提供一定级别的数据关系.
  • 使用Unicode进行国际化.
  • 编程语言不可知; 可用于许多编程语言.
  • 可用于界面异构系统; 只要所有系统都使用商定的数据表示合同,异构系统之间的通信就是可能的.
  • 开放标准; 任何管理机构的成员资格都不需要获取规范(JSON在IETF RFC#4627中定义,XML定义为W3C规范),并且没有限制性许可证(JSON,XML).

差异

  • JSON有一个简单的符号,可以被开发人员快速采用.
  • JSON的轻量级特性使其能够通过降低性能瓶颈来改善Internet用户体验.
  • 借用JavaScript的JSON简单表示法使得将数据表示形式/序列化为通用数据结构变得更容易,更高效.
  • JSON在ECMAScript第5版中可用,使其可用于具有集成ECMAScript引擎的所有应用程序(最值得注意的是,Web浏览器).
  • XML是一种文档标记语言,提供语义,为数据提供额外的含义; JSON没有这种能力.
  • XML具有更广泛的规范,涵盖诸如数据定义和验证的模式,命名空间,样式表,转换,数据表达式等等.
  • XML已存在更长时间,并被许多企业广泛采用; 提供更好的文档,编程语言支持,工具支持,社区体验,现成的产品支持等.
  • XML强大的标准使其成为灵活(或有时,刚性......以有利的方式)企业对企业通信的更好解决方案.

  • **杰出的答案!** 清晰完整,并有适当的参考资料供备份和进一步阅读。干得好! (2认同)