首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么JSON比XML更轻量级?

为什么JSON比XML更轻量级?
EN

Stack Overflow用户
提问于 2012-09-10 14:27:29
回答 7查看 15K关注 0票数 18

我发现了JSON和XML之间的区别。因为,两者都用于系统之间的数据交换,但JSON和XML有一个很大的区别,那就是JSON比XML更轻量级。但是我找不到JSON轻量级的真正原因。是什么让JSON变得轻量级?

我发现的一个答案是,在JSON中没有太多额外的xml标记。它的实际含义是什么。为什么JSON是轻量级的,还有其他原因吗?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2012-09-10 14:31:51

您看过JSON和XML文档的示例吗?

虽然JSON和XML都用于表示任意的数据树,但XML要冗长得多。树中的每个元素都有一个名称(元素类型名称),该元素必须包含在一对匹配的标记中。相比之下,JSON以类似于Javascript的“嵌套数组”类型的符号表示树(实际上,JSON文档可以直接解析为Javascript以生成相应的数组)。

看看at the differences吧。

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

代码语言:javascript
复制
<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>

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

代码语言:javascript
复制
<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>

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

次要考虑的是围绕这两种格式的工具集的数量。虽然JSON工具主要用于解析JSON数据,但W3C一直在开发一组非常庞大的附随技术,以便以系统的方式操作XSLT和XPATH。

简而言之,作为个人观点,我想说XML是关于文档的,而JSON是关于数据的。对于大型的结构化文档,XML感觉更自然、更有用,而JSON通常是更简单、更少冗长的数据集传输格式。

票数 30
EN

Stack Overflow用户

发布于 2012-09-10 14:32:48

JSON表示法更简洁。XML重复结束标记中的节点类型,而JSON仅使用堆栈推断闭包范围。XML支持名称空间,据我所知JSON不支持。XML模式通常包含类型信息,但没有内在原因不能用JSON做到这一点。应该注意的是,JSON的兴起在很大程度上是因为它在实际使用的所有方面在功能上与XML等效。LZW压缩一上线,这种差异就消失了,因为XML比字典压缩效果更好。

票数 8
EN

Stack Overflow用户

发布于 2012-09-10 14:33:15

数据模型是不同的。除了您自己注意到的缺乏标记之外,JSON也没有所有其他XML特性,例如:

  • Processing instructions
  • Comments
  • Attributes

因此,不仅数据本身更轻量级,实现数据模型的任何库也是如此。这使得使用非JavaScript语言呈现、解析和处理JSON的速度更快。对于JavaScript来说,这是显而易见的,因为JSON是实际的JavaScript代码,因此对于JavaScript解析器来说要处理的轻量级多了。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12346349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档