为什么JSON比XML更轻量级?

Aru*_*mar 17 xml json

我发现了JSON和XML之间的区别.因为,两者都用于系统之间的数据交换,但JSON和XML之间存在很大差异,JSON比XML更轻量级.但我无法找到为什么JSON重量轻的实际原因.是什么让JSON重量轻?

我发现一个答案是在JSON中没有很多额外的xml标记.它实际意味着什么.是否还有一些原因可以解释为什么JSON是轻量级的?

Ker*_* SB 30

您是否查看了JSON和XML文档的示例?

虽然JSON和XML都用于表示任意数据,但XML更加冗长.树中的每个元素都有一个名称(元素类型名称),并且元素必须包含在一对匹配的标记中.相比之下,JSON以"嵌套数组"类型的符号表示树,类似于Javascript(实际上,JSON文档可以逐字解析为Javascript以生成相应的数组).

看看差异.

XML当然在语义上更丰富,因为元素可以用任意数量的属性进行修饰,元素可以包含自由文本流和嵌套元素的混合内容.例如,下面的代码片段将表示为JSON:

<paragraph>
   This is an entire paragraph of <emph>text</emph>. It is interspersed with
   further, nested <emph>XML elements</emph>, as well as the occasional
   <link href="http://stackoverflow.com/a/12346394/596781">hyperlink</link>.
</paragraph>
Run Code Online (Sandbox Code Playgroud)

另一方面,类似数据的文档在JSON中可以更简单.想象一下:

<properties>
    <property type="int" name="ID">123</property>
    <property type="date" name="birthday">19700101</property>
    <references>
        <url>http://stackoverflow.com/a/12346394/596781</url>
        <doi>something.made.up</doi>
    </references>
</properties>
Run Code Online (Sandbox Code Playgroud)

这成为一个非常紧凑的JSON数组.

次要考虑因素是围绕两种格式的工具集数量.虽然JSON工具主要是解析JSON数据,但W3C已经开发了一系列非常大的粘附技术来以系统的方式操作XML,例如XSLT和XPATH.

简而言之,作为一个非常个人的观点,我会说XML是关于文档而JSON是关于数据的.对于大型结构化文档,XML会更自然,更有用,而JSON通常是用于传输数据集的更简单,更简洁的格式.


Pet*_*one 8

JSON表示法更简洁.XML在结束标记中重复节点类型,而JSON只是使用堆栈推断闭包范围.XML支持名称空间,据我所知JSON没有.XML模式通常包含类型信息,但没有使用JSON无法执行此操作的内在原因.应该注意的是,JSON的兴起在很大程度上归功于它在实际使用的所有方面在功能上等同于XML .在线路上,只要LZW压缩发挥作用,差异就会消失,因为XML可以很好地进行字典压缩.


Luk*_*der 8

数据模型不同.除了缺少自己注意到的标记之外,JSON还没有其他所有XML功能,例如:

  • 处理说明
  • 评论
  • 属性

因此,不仅数据本身更轻量级,而且任何实现数据模型的库也是如此.这使得使用非JavaScript语言渲染,解析和处理JSON的速度要快得多.对于JavaScript,这是一个明智的选择,因为JSON是实际的JavaScript代码,因此JavaScript解析器可以处理更"轻量级"


Kri*_*mar 7

简单

XML比SGML简单,但JSON比XML简单得多.JSON具有更小的语法,并且更直接地映射到现代编程语言中使用的数据结构.

可扩展性

JSON不可扩展,因为它不需要.JSON不是文档标记语言,因此不必定义新标记或属性来表示其中的数据.

互通性

JSON具有与XML相同的互操作性.

透明度

JSON至少和XML一样开放,或许更为开放,因为它不是企业/政治标准化斗争的中心.

内容链接