XML 和 JSON 的区别

定义
  • XML

可扩展标记语言(英语:Extensible Markup Language,简称:XML).用来传输及存储数据信息,不用来表现或展示数据。

  • JSON
  • JSON 是一个轻量级的数据格式 ,不是一种编程语言。JSON是一个JavaScript 的严格的子集,利用JavaScript 中一些模式来表示结构化数据。
  • 与XML 相比,JSON是在JS中读写结构化数据更好的 方式,因为它可以把JSON 直接传给eval(),而不必创建 DOM 对象。
优缺点
  • XML

优点

  • 格式统一,符合标准
  • 容易与其他系统进行远程交互,数据共享比较方便

缺点

  • XML文件庞大,文件格式复杂,传输占带宽
  • 服务器端和客户端都需要花费大量代码来解析XML,导致服务器端和客户端代码变得异常复杂且不易维护
  • 客户端不同浏览器之间解析XML的方式不一致,需要重复编写很多代码
  • 服务器端和客户端解析XML花费较多的资源和时间
  • JSON
    优点
  • 数据格式比较简单,易于读写,格式都是压缩的,占用带宽小
    易于解析,客户端JavaScript可以简单的通过eval()进行JSON数据的读取
  • 支持多种语言,包括ActionScript, C, C#, ColdFusion, Java, JavaScript, Perl, PHP, Python, Ruby等服务器端语言,便于服务器端的解析
  • 在PHP世界,已经有PHP-JSON和JSON-PHP出现了,偏于PHP序列化后的程序直接调用,PHP服务器端的对象、数组等能直接生成JSON格式,便于客户端的访问提取
  • 因为JSON格式能直接为服务器端代码使用,大大简化了服务器端和客户端的代码开发量,且完成任务不变,并且易于维护

缺点

  • 没有XML格式这么推广的深入人心和喜用广泛,没有XML那么通用性
  • 数据描述性不如XML
数据体积方面

JSON 相对于 XML而言,数据体积小,传递的速度比较快。

与XML序列化相比,JSON序列化后产生的数据一般要比XML序列化后数据体积小,所以在Facebook等知名网站中都采用了JSON作为数据交换方式。

数据交互方面

JSON与javascript的交互更加方便,更容易解析处理。

  • 可以把 JSON 数据结构解析为有用的 JavaScript 对象。与XML数据结构要解析成 DOM 文档而且从中提取数据极为麻烦相比,JSON 可以解析为 JavaScript 对象的优势极为明显。
数据描述方面

JSON对数据的描述性比 XML 差。

  • XML 文档必须包含根元素,该元素是所有其他元素的父元素。
  • XML 文档的元素形成了一颗文档树,这棵树从根部开始并扩展到树的底端。
  • 可读性来说,XML 文档使用简单的具有自我描述性的语法,人类语言更加贴近这种说明结构。
<?xml version="1.0" encoding="utf-8" ?>
<country>
  <name>中国</name>
  <province>
    <name>黑龙江</name>
    <citys>
      <city>哈尔滨</city>
      <city>大庆</city>
    </citys>    
  </province>
  <province>
    <name>广东</name>
    <citys>
      <city>广州</city>
      <city>深圳</city>
      <city>珠海</city>
    </citys>   
  </province>
</country>
  • JSON 更像一个数据块,读起来比较费解,适合机器阅读。
var country =
        {
            name: "中国",
            provinces: [
            { name: "黑龙江", citys: { city: ["哈尔滨", "大庆"]} },
            { name: "广东", citys: { city: ["广州", "深圳", "珠海"]} }
            ]
        }
传输速度方面

JSON 的速度要远远快于 XML。

  • JSON被认为是XML的很好替代者。
  • 因为JSON的可读性非常好,而且它没有像XML那样包含很多冗余的元素标签,这使得应用在使用JSON进行网络传输以及进行解析处理的速度更快,效率更高。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,026评论 19 139
  • JSON(Javascript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同...
    l_genius阅读 5,103评论 0 5
  • 今个去面试,一个人事经理问我xml和json的区别我没答上来感觉很难过,于是就回来后就查阅相关资料写点东西:: 1...
    丁桥人在外地阅读 13,133评论 5 35
  • 1.定义介绍 (1).XML定义 扩展标记语言 (Extensible Markup Language, XML)...
    iplaycodex阅读 775评论 0 4
  • JSON JSON和XML都是需要解析的 JSON是一种轻量级的数据格式,一般用于数据交互服务器返回给客户端的数据...
    JonesCxy阅读 1,887评论 2 10