JSON和XML是否可比?

时间:2011-10-19 15:22:44

标签: xml json data-structures comparison

我听到有人声称“JSON与XML相同”。 JSON和XML可比吗?每个人的主要相似点和不同点是什么?

有一些StackOverflow Q& As涉及比较JSON和XML [1] [2] [3] [4] [5] [6] {{ 3}},但没有一个提供一个好的,单一的参考点,专注于他们的主要相似点和不同点。

2 个答案:

答案 0 :(得分:29)

什么是JSON?

JSON(JavaScript Object Notation)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。根据{{​​3}},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表示可能如下所示:

<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具有可比性的结论。如果您的目标是通过互联网使用其中一个进行简单的数据交换,如上面的简单示例所示,那么这个目标肯定是可以实现的,而且JSON和XML实际上大部分都是可比较的。

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

虽然可能有点偏颇,但The Fat-Free Alternative to XML XML sample from Wikipedia列出了一些优点。还有from the JSON siteXML vs JSON !!! Dont compare.博客条目,其中包含一些可供比较的项目符号。

的相似性

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

的差异

  • JSON有一个简单的表示法,可以很快被开发人员采用。
  • JSON的轻量级特性使其能够通过降低性能瓶颈来改善互联网用户体验。
  • JSON的简单表示法,借鉴了JavaScript,使得将数据表示形式/序列化为JSON更容易,更高效。
  • JSON在XML中可用,使其可用于具有集成ECMAScript引擎的所有应用程序(最值得注意的是,Web浏览器)。
  • XML是一个文档common data structures,提供了赋予数据额外含义的语义; JSON没有这种能力。
  • XML具有更广泛的规范,涵盖ECMAScript, 5th edition数据定义和验证,markup languageschemasnamespacesstylesheets和许多其他人。
  • XML已存在更长时间,并被许多企业广泛采用;提供更好的文档,编程语言支持,工具支持,社区体验,现成的产品支持等。
  • XML的强大标准使其成为灵活(或有时,以某种有益的方式)企业对企业通信的更好解决方案。

答案 1 :(得分:0)

这是一组类似的关系,可用于将XML转换为JSON:

  • 根节点由顶级对象
  • 表示
  • 子节点加属性集由数组
  • 表示
  • 每个子节点由具有Object值
  • 的String名称表示
  • 每个属性由带有字符串值的字符串名称
  • 表示
  • 可能出现多次的元素将转换为数组属性
  • 标记的文本值由带字符串值
  • 的带前缀的String名称表示
  • 注释节点与最近的String值以及\ u0022 delimiters
  • 合并

以下是一组类似的关系,可用于将JSON转换为XML:

  • 顶级对象由根节点
  • 表示
  • 数组由子节点轴
  • 中的子节点集表示
  • 具有Object值的String名称由元素实体
  • 表示
  • 具有String值的String名称由属性实体
  • 表示
  • 具有前缀的字符串名称将转换为父元素的文本节点

<强>参考