【发布时间】:2011-10-19 15:22:43
【问题描述】:
我听说有人说“JSON 与 XML 相同”。 JSON 和 XML 是否具有可比性?各自的主要异同点是什么?
有一些 StackOverflow Q&A 涉及比较 JSON 和 XML [1] [2] [3] [4] [5] [6] [7],但没有一个提供专注于它们的主要相同点和不同点。
【问题讨论】:
标签: xml json data-structures comparison
我听说有人说“JSON 与 XML 相同”。 JSON 和 XML 是否具有可比性?各自的主要异同点是什么?
有一些 StackOverflow Q&A 涉及比较 JSON 和 XML [1] [2] [3] [4] [5] [6] [7],但没有一个提供专注于它们的主要相同点和不同点。
【问题讨论】:
标签: xml json data-structures comparison
JSON(JavaScript 对象表示法)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.
借用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(可扩展标记语言)is a simple, very flexible text format derived from SGML。根据Wikipedia,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[...].
再次借用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 XMLfrom the JSON site 列出了一些比较好的点。还有 XML vs JSON !!! Dont compare. 和 JSON Pros and Cons 博客条目,其中包含一些要点供比较。
【讨论】:
这是一组可用于从 XML 转换为 JSON 的类比关系:
这是一组可用于从 JSON 转换为 XML 的类比关系:
参考文献
【讨论】: