XML和JSON - 优点和缺点?

Meh*_*dad 26 xml json

我最近听说过JavaScript Object Notation(JSON),在查找之后,它似乎变得越来越流行,作为可扩展标记语言(XML)的替代品.

我在这个页面上获取了更多信息,但它似乎更像是一个打击XML的页面而不是比较页面.所以我想我应该问这里:

与XML相比,JSON有什么好处,为什么(如果有的话)我们应该选择一个而不是另一个?

Jus*_*tin 41

  • JSON更紧凑,可以在JavaScript中轻松加载.
  • XML更严格,并且支持模式和名称空间.

从表面上看,JSON在各方面都显得优越 - 它灵活,更紧凑,在许多情况下更易于使用(特别是在使用JavaScript时),但它缺少一些关键功能,特别是:

  • 架构支持,

即甲方能够指定文件的格式,以及乙方能够检查他们是否提供与此格式匹配的内容的能力.

在不同系统之间传递数据时,这是至关重要的,其中与预期格式的偏差可能意味着无法处理数据(或者更糟糕的是,处理不正确).

  • 命名空间支持,

即能够在同一文档中混合要由多个源(或由多个源写入)读取的数据.

实现这一点的一个例子是SOAP协议 - 名称空间允许分离与序列化应用程序数据一起传递的SOAP"Envelope"或"Wrapper"数据.这允许Web框架处理和处理SOAP Envelope,然后将body/payload数据传递到应用程序.


在开发需要快速,紧凑和方便的数据序列化的Web应用程序时,JSON非常有用,但是它的灵活性使得它不像XML那样适合在不同系统之间传输数据,或者存储将要读取的数据由第三方.

也许及时这些功能将出现在JSON中,但是现在XML是Web服务和文件格式等主要格式.

  • 甚至有些情况下xml比json短,因为您不需要用数组包装元素集。而且,使用XML注释的功能非常方便,尤其是对于配置文件。 (2认同)
  • 根据我的经验,JSON 也有[模式支持](http://json-schema.org/understanding-json-schema/),尽管它通常会在随附文件中提供。XML 模式是否有一些与 JSON 模式不同的特征? (2认同)

bdo*_*han 22

JSON的优点

  • 较小的邮件大小
  • 文档中的更多结构信息
    • 可以很容易地将数字1和字符串区"1"分为数字,字符串(和布尔值)在JSON中的表示方式不同.
    • 可以轻松区分单个项目和大小为1的集合(使用JSON数组).
  • 更容易表示空值
  • 轻松使用JavaScript

XML的优点

  • 命名空间允许共享标准结构
  • 更好地代表继承
  • 表达文档结构的标准方法:XML模式,DTD等
  • 解析标准:DOM,SAX,StAX
  • 查询标准:XQuery和XPath
  • 转换文档的标准:XSLT

  • 人类可读
  • 易于解析


Lig*_*ica 7

XML

  • 可以有一个表明其格式的模式.
    • 这是质量控制人员感兴趣的.您可以证明其格式与预期的格式相符,因此您可能不必像每次想要引用字段时检查字段是否存在一样热情.
    • (虽然这可以预先假定您根据自己的架构实际验证XML.)
  • 臃肿; 每个字段名称必须每个字段写出两次.EW!

JSON

  • 更不容易臃肿,更容易解析,并且可以说更具人性化(如果你正确地解决它).
  • 不那么强大:没有足够的表现力来将属性与值分开.


Onl*_*ere 5

XML的优点

  1. 几乎无处不在的支持广泛的语言和框架.更有可能的是,已经有一个工具可以帮助您从XML响应中提取信息.

  2. 如果您愿意,它可以遵循具体的架构.验证后,您可以说它是正确的并开始解析.

  3. 命名空间允许您划分XML.

JSON的优点

  1. 与XML相比轻量级.人物较少=经历的时间较短internet tubes.

  2. 如果您需要Web应用程序的某些内容,则可以更轻松地使用Javascript处理.