我发现了JSON和XML之间的区别。因为,两者都用于系统之间的数据交换,但JSON和XML有一个很大的区别,那就是JSON比XML更轻量级。但是我找不到JSON轻量级的真正原因。是什么让JSON变得轻量级?
我发现的一个答案是,在JSON中没有太多额外的xml标记。它的实际含义是什么。为什么JSON是轻量级的,还有其他原因吗?
发布于 2012-09-10 14:31:51
您看过JSON和XML文档的示例吗?
虽然JSON和XML都用于表示任意的数据树,但XML要冗长得多。树中的每个元素都有一个名称(元素类型名称),该元素必须包含在一对匹配的标记中。相比之下,JSON以类似于Javascript的“嵌套数组”类型的符号表示树(实际上,JSON文档可以直接解析为Javascript以生成相应的数组)。
看看at the differences吧。
当然,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>另一方面,在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>这将成为一个非常紧凑的JSON数组。
次要考虑的是围绕这两种格式的工具集的数量。虽然JSON工具主要用于解析JSON数据,但W3C一直在开发一组非常庞大的附随技术,以便以系统的方式操作XSLT和XPATH。
简而言之,作为个人观点,我想说XML是关于文档的,而JSON是关于数据的。对于大型的结构化文档,XML感觉更自然、更有用,而JSON通常是更简单、更少冗长的数据集传输格式。
发布于 2012-09-10 14:32:48
JSON表示法更简洁。XML重复结束标记中的节点类型,而JSON仅使用堆栈推断闭包范围。XML支持名称空间,据我所知JSON不支持。XML模式通常包含类型信息,但没有内在原因不能用JSON做到这一点。应该注意的是,JSON的兴起在很大程度上是因为它在实际使用的所有方面在功能上与XML等效。LZW压缩一上线,这种差异就消失了,因为XML比字典压缩效果更好。
发布于 2012-09-10 14:33:15
数据模型是不同的。除了您自己注意到的缺乏标记之外,JSON也没有所有其他XML特性,例如:
因此,不仅数据本身更轻量级,实现数据模型的任何库也是如此。这使得使用非JavaScript语言呈现、解析和处理JSON的速度更快。对于JavaScript来说,这是显而易见的,因为JSON是实际的JavaScript代码,因此对于JavaScript解析器来说要处理的轻量级多了。
https://stackoverflow.com/questions/12346349
复制相似问题