zoukankan      html  css  js  c++  java
  • JSON 为王,为什么 XML 会慢慢淡出人们的视野?

      目前全球信息基础设施的特点是,拥有大量的数据交换格式。这一点也不奇怪。互联网几乎已经老了,而“物联网”及“大数据”正从概念走进现实。但我仍然相信,在这一领域还有一股较强的历史趋势,推动 JSON 数据格式的应用。

      十年前,XML是主要的数据交换格式。它的出现,尤如一股清新的空气,以及令人惊喜的 SGML(标准通用标记语言),是一个巨大的进步。它使人们能够做到以 前想都不敢想的事情,比如通过HTTP连接交换微软Office文档,你的周围布满 XML 文档,你很容易忽略这把“互联网瑞士军刀”的重要性。 

      这已经不是什么秘密了,但在过去的几年里,在数据交换的世界,一个大胆的改造已经开始。更轻巧,更省带宽的,密集型的JSON(JavaScript对象标 记),已不仅仅成为XML的另外一套可选技术,而是可能成为一个潜在的完全成熟的接班人。现在各种各样的力量汇聚在一起,让XML的使用越来越少,并视 JSON作为未来的全球数字架构的首选格式。我认为,唯一的问题是这个时刻何时到来。

      我坚信,这种转变可以归因于四大趋势,我将依次讨论:

    1. APIs

      不管你喜欢与否,今天的网络环境在很多重要方面仍然严重孤立。有大量你将永远接触不到的信息在那里(如身份验证信息,应该被加密)。但像eBay这样的公司开始走向开放,API已经作为一种通用的力量。

      这里有一些例子,像Twitter, Facebook和LinkedIn和其他无数的机构 a)基于信息服务来交换数据 (b 对开放各种各样的信息给第三方越来越有兴趣。大量的数据永远看不到出头之日(因为他们是孤立的) 。现在我只想说,这些API是一股不可忽视的力量,并改变着这个空间,在网络上留下他们的标记。

      这里很多原始数据仍然使用XML而不是JSON,像可编程Web和其他数据表明,XML仍然是API的主要数据格式,但是“大JSON”正在快速上升。 Twitter的API大约两年前开始就只支持JSON了。Foursquare也跟进了。

      Scott Gilbertson大致同意我的判断: “当涉及到数据API服务时, XML仍然是最常用的格式,但JSON是的增长更快。尽管还有很多XML格式的API,但最近的API ,越来越倾向于使用JSON格式。这样的例子还有很多…… 企业正在迅速从XML迁移到JSON”。 Scott一年多前就发表了他的观点,但没有什么迹象表明他的观点有任何变化。

      简而言之:APIs 已经不再是一个很酷的事情或Web的附属物,用Gilbertson的话来说,是“互联网上的一等公民”。最重要的是,REST正在替代SOAP作为数据 传输协议。XML跟REST不太兼容,当然,如果SOAP使用率急剧下降,那么XML的使用量将与它一起萎缩。

    2. 大数据

      JSON 的崛起在数据库方面也扮演着关键角色,这是另一个对XML不好的预兆。其实大数据本身并没有首选的数据交换格式。不过,对于大数据来说JSON可能更特殊 一点。JSON是一种新兴的以网络为中心,所谓的“NoSQL”数据库的首选格式。这是因为:a)JSON适应大规模可扩展性的数据库; b)天生就是为了无关系数据而设计的; c))面向Web是他们的核心;

      这是有很多知名的例子,像MongoDB,CouchDB,和Riak。这三种数据库都基于JSON,横向可扩展,由Web驱动。

      其他的例子比比皆是:亚马逊DynamoDB的架构是完全基于REST/JSON的。 Neo4j,图形数据库,有一个REST/JSON API,没有对应XML的支持。 HBase的的REST架构目前支持XML,但这种支持正走在被废弃的路上。

      一 段时间以来,通过各种手段查询MySQL,并得到JSON的返回结果,这一直是可能的。(有很多方法可以做到这一点,但MySQL 4.1中的JSON格式的命令无疑是最方便的)。这同样适用于Postgres的和其他柱状数据库。但除了MySQL和Postgres,还没有其他数据 库将JSON作为基石。

      Postgres将很快发生变化。在9.2版本中, Postgres将支持JSON数据类型,这将“允许存储基于文档的数据库,可存储JSON文档,或将数组和行数据转换成JSON ”。尽管Postgres支持XML数据类型有一段时间了,这种变化令我对JSON的重要性日益增加,增加了一个微妙的确认。

      还有一些数据库是基于XML的(如MarkLogic),但是还没有任何类似迅速采用基于JSON存储之类的动静。

    3. 物联网

      在这一领域的运动比我所提到的其他领域寻更难以辨别。物联网仍然是一个概念,但这是特别强大的一个。它还未实现,还未被证明可行,以及首选的数据格式。互联网基本上是一大堆电脑连接一直的小事。

      但 值得一提的是,JSON开始已经在这一领域建立立足点。有人使用JSON在Arduino上建了一个库。在“物联网架构设计”(第102页)一书中,有人 认为:“JSON可以更好地适应[比XML]智能设备上的功能。此外,它可以被解析成JavaScript对象。这使得它成为集成到网页中的理想人选。 “你可以基于JSON构造LED压力表。你的下一个温控器可能也会基于JSON运行。

      我们还没有到那个时侯,几乎感觉不到的JSON关联着你周围的一切。谁知道呢?

    4. 全栈(全端)JavaScript

      除了上面提到的三股力量,还有一个更值得地提到:JavaScript是一种辣味十足且有可能不会很快改变的技术。node.js已经逐渐成为主流,围绕它 周围的狂热社区在快速地产生,新的客户端JavaScript库每一天都在增加,JavaScript已经在网络上广泛使用,在web开发世界,参与这个 不断增长的分支的人们,应该更喜欢JSON,这仅仅是轻描淡写的一笔。 当然,也有基于node的XML解析器,但它主要是处理遗留的基于XML的服务。事实是,如果你正在从上往下做全栈式的JavaScript,使用JSON之外的东西是愚蠢的。因为全栈的JavaScript已经成为主流。

    这样或那样,前途光明的JSON

      如果上述与JSON本身无关,这将是很另人吃惊的。许多人认为,JSON更好,因为它不像XML那么“详细”,并且比起纯二进制更容易被人们理解。

      这些因素都对JSON有一定的帮助,但我们的开发人员Matthew Lyon有一个更为令人信服的理由。他认为JSON的崛起,是因为JSON只处理了非常有限的数据类型。它本质上限制为null, Booleans, numerics, strings, arrays,和 dictionaries。它甚至没有一个日期数据类型。JSON就是这样,不仅没有一般XML的冗长:它仅是在使用本身的数据类型。它本身的原始数据类 型的更简洁,使JSON更深刻,并可以立即与之互操作。

      总的来说,我的说法并不是真的如此大胆,因 为似乎已经显而易见了。它主要由两部分组成:(1)为了全球的数字基础设施,需要有无孔不入的数据交换格式,像针线一样将一切融合在一起,建立高清晰度的 节点;(2)有充分理由认为,JSON总有一天会在我们的数字世界中建立霸主地位。我们应该期望适应这一变化,并相应地调整。

    译文链接:http://ourjs.com/detail/5310bbf992b2049526000016

    本文链接:http://www.cnblogs.com/oooweb/p/json-vs-xml.html

  • 相关阅读:
    JavaScript
    94.Binary Tree Inorder Traversal
    144.Binary Tree Preorder Traversal
    106.Construct Binary Tree from Inorder and Postorder Traversal
    105.Construct Binary Tree from Preorder and Inorder Traversal
    90.Subsets II
    78.Subsets
    83.Merge Sorted Array
    80.Remove Duplicates from Sorted Array II
    79.Word Search
  • 原文地址:https://www.cnblogs.com/oooweb/p/json-vs-xml.html
Copyright © 2011-2022 走看看