我最近听说过JavaScript Object Notation(JSON),在查找之后,它似乎变得相当受欢迎,作为可扩展标记语言(XML)的替代品。
我进入this页面了解更多信息,但它似乎更像是一个打击XML的页面而不是比较页面。所以我想我应该在这里问:
与XML相比,JSON有什么好处?为什么(如果有的话)我们应该选择其中一个?
答案 0 :(得分:39)
从表面上看,JSON在各方面都显得优越 - 它灵活,更紧凑,在许多情况下更易于使用(特别是在使用JavaScript时),但它缺少一些关键功能,特别是:
即。甲方能够指定文件格式的能力,以及乙方检查他们是否提供符合此格式的内容的能力。
这在单独系统之间传递数据时至关重要,因为偏离预期格式可能意味着无法处理数据(或者更糟糕的是,处理不正确)。
即。能够在同一文档中混合多个来源(或由多个来源编写)读取的数据。
此实例的一个示例是SOAP协议 - 名称空间允许分离与序列化应用程序数据一起传递的SOAP“Envelope”或“Wrapper”数据。这允许Web框架处理和处理SOAP Envelope,然后将body / payload数据传递到应用程序。
JSON在开发需要快速,紧凑和方便的数据序列化的Web应用程序时非常有用,但是它的灵活性使得它不像XML那样适合在不同系统之间传输数据,或存储数据将由第三方阅读。
也许及时这些功能将出现在JSON中,但目前XML是Web服务和文件格式等主要格式。
答案 1 :(得分:21)
JSON的优势
1
和字符串"1"
,因为数字,字符串(和布尔值)在JSON中的表示方式不同。XML的优点
<强>绘图强>
答案 2 :(得分:6)
<强> XML 强>
<强> JSON 强>
答案 3 :(得分:5)
XML的优点
在各种语言和框架中提供无处不在的支持。很可能已经有了一个工具可以帮助你从XML响应中提取信息。
如果您选择,它可以遵循具体的架构。验证后,您可以说它是正确的并开始解析。
命名空间允许您划分XML。
JSON的优势
与XML相比轻量级。较少的字符=较短的时间通过internet tubes
。
如果您需要Web应用程序的某些内容,则可以更轻松地使用Javascript处理。
答案 4 :(得分:3)
JSON - 更小,可以作为JavaScript对象本地加载(速度是一个值)
XML - 仍然是标准的,不过更老(更慢,更大,但不仅仅是JS)
答案 5 :(得分:2)
JSON是一种比XML更简单的格式。 JSON仅用于将数据描述为对象层次结构,而XML还具有许多其他功能。
如果你只需要发送简单的简单数据,那么JSON是一个很好的选择,因为它正是它的目的。
如果您需要一种更强大的方式来描述您的数据,那么您将需要XML,因为JSON根本不做任何花哨的事情。
答案 6 :(得分:1)
他们是同样富有表现力的格式。 JSON不那么冗长。 JSON可以在JavaScript(和其他语言)中轻松解析,并且很容易通过很多东西解析XML。
我认为最重要的考虑因素是消耗数据的内容 - 如果您已经拥有一堆XML解释代码,请坚持使用。如果您的所有客户都是Web开发人员,请使用JSON。
答案 7 :(得分:1)
冗长-XML使用的单词多于必要
JSON更快-解析XML软件缓慢且麻烦。由于解析大型XML文件的冗长性和成本,许多此类DOM操作库可能导致您的应用程序使用大量内存。
JSON数据模型的结构与数据匹配:JSON的数据结构是一个映射,而XML是一棵树。尽管地图(仅键/值对)可能会受到限制,但这正是我们想要的,因为它易于解释且可预测。
在代码中:项目在代码中的表示方式相同。在许多语言中,尤其是动态语言中,您只需“以JSON形式添加”,即可立即获得域对象。从JSON中的对象到代码中的对象很容易,因为它们是对齐的。从XML对象到代码对象时,它们无法对齐,并且有很大的解释空间。
JSON是有限制的,但这是一件好事:JSON在可以建模的对象方面受到限制。有些人可能认为XML更好,因为可以建模更多的对象,并且它不会禁止开发人员。但是,即使JSON禁止开发人员,它也是一种积极的方式,它使代码更简单,更可预测且更易于阅读。可以将XML格式化为公司所需的外观和功能,但是它使开发人员难以阅读,理解和转换。在大多数情况下,人们认为XML更好,因为开发人员可以在阳光下做任何事情,但是在简化的时代,少花钱多了,使JSON成为更好的选择。