JSON和XML都是数据传输格式,它们有哪些区别,又都有些什么优缺点呢?零度带领大家来分析分析。

一、先来看看两者的定义

1.XML的定义

扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 XML使用DTD(document type definition)文档类型定义来组织数据;格式统一,跨平台和语言,早已成为业界公认的标准。
XML是标准通用标记语言 (SGML) 的子集,非常适合Web传输。XML提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。

2.JSON的定义

JSON(JavaScript Object Notation)一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。可在不同平台之间进行数据交换。JSON采用兼容性很高的、完全独立于语言文本格式,同时也具备类似于C语言的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)体系的行为。这些特性使JSON成为理想的数据交换语言。

二、两者之间的区别

1.编码方面的区别

JSON的编码更为清晰且冗余更少些,而XML比较适合于标记文档。JSON网站提供了对JSON语法的严格描述,只是描述较简短。JSON更适于进行数据交换处理。

2.编码可读性之间的区别

XML有明显的优势,毕竟人类的语言更贴近这样的说明结构。JSON读起来更像一个数据块,读起来就比较费解了。不过,我们读起来费解的语言,恰恰是适合机器阅读。

三、XML的优缺点

优点:

1.格式统一,符合标准
2.容易与其他系统进行远程交互,数据共享比较方便
3.调用将 XML 用作传输的现有服务。
4.使用 XSLT 可以动态转换 XML。这是企业服务总线 (ESB) 方案中的理想功能。

缺点:

1. XML文件格式文件庞大,格式复杂,传输占用带宽
2. 服务器端和客户端都需要花费大量代码来解析XML,不论服务器端和客户端代码变的异常复杂和不容易维护
3. 客户端不同浏览器之间解析XML的方式不一致,需要重复编写很多代码
4. 服务器端和客户端解析XML花费资源和时间

四、JSON的优缺点

优点:

1. 数据格式比较简单,易于读写,格式都是压缩的,占用带宽小,浏览器解析快
2. 易于解析这种语言,客户端JavaScript可以简单的通过eval()进行JSON数据的读取
3. 构造友好,支持多种语言,包括ActionScript, C,C#,ColdFusion,Java,JavaScript,Per,PHP,Python,Ruby等语言服务器端语言,便于服务器端的解析
4. 在PHP世界,已经有PHP-JSON和JSON-PHP出现了,便于PHP序列化后的程序直接调用,PHP服务器端的对象、数组等能够直接生JSON格式,便于客户端的访问提取
5. 因为JSON格式能够直接为服务器端代码使用,大大简化了服务器端和客户端的代码开发量, 但是完成的任务不变, 且易于维护
6.相当稳定。JSON 的附加内容将成为超集

缺点:

1. 没有XML格式这么推广的深入人心和使用广泛,没有XML那么通用性
2. JSON格式目前在Web Service中推广还属于初级阶段

XML与JSON的区别?各自有哪些优缺点?的更多相关文章

  1. 浅析XML和JSON的区别

    前言 今天做接口对接时,发现对方竟然是通过XML进行数据传输,当时冒出的第一个想法就是:WTF,这都什么年代了,还在用XML,是来搞笑的吧,JSON它不香吗? 想法归想法,但对接还是要完成的是吧?然后 ...

  2. xml和json的区别

    本文转自SanMaoSpace的博客 链接地址如下:http://www.cnblogs.com/SanMaoSpace/p/3139186.html 1.定义介绍 (1).XML定义扩展标记语言 ( ...

  3. xml 和 json 的区别

    JSON(Javascript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成.它基于Javascript Programming Langu ...

  4. [Android]XML和JSON的区别

    1.定义介绍 (1).XML定义 扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类型,是一种允 ...

  5. xml与json的区别和总结

    JSON和XML的比较 ◆可读性 JSON和XML的可读性可谓不相上下,一边是简易的语法,一边是规范的标签形式,很难分出胜负. ◆可扩展性 XML天生有很好的扩展性,JSON当然也有,没有什么是XML ...

  6. XML与JSON的区别

    JSON和XML的比较 ◆可读性 JSON和XML的可读性可谓不相上下,一边是简易的语法,一边是规范的标签形式,很难分出胜负. ◆可扩展性 XML天生有很好的扩展性,JSON当然也有,没有什么是XML ...

  7. XML与JSON使用区别

    一:XML XML 文档形成了一种树结构,它从"根部"开始,然后扩展到"枝叶". XML 文档形成一种树结构 XML 文档必须包含根元素.该元素是所有其他元素的 ...

  8. 10分钟掌握XML、JSON及其解析

    引言 NOKIA 有句著名的广告语:“科技以人为本”.任何技术都是为了满足人的生产生活需要而产生的.具体到小小的一个手机,里面蕴含的技术也是浩如烟海,是几千年来人类科技的结晶,单个人穷其一生也未必能掌 ...

  9. xml 和json 数据格式及解析

    来源:http://blog.jobbole.com/79252/ 引言 NOKIA 有句著名的广告语:“科技以人为本”.任何技术都是为了满足人的生产生活需要而产生的.具体到小小的一个手机,里面蕴含的 ...

随机推荐

  1. Swift学习笔记(2):错误处理

    目录: Error do-catch 断言 Error 在 Swift 中,错误用符合 Error 协议的类型的值来表示.这个空协议表明该类型可以用于错误处理异常. Swift 的枚举类型尤为适合构建 ...

  2. C#共享WIFI能通过代码控制给连接的移动端分配IP么

    用C#创建了一个虚拟WIFI,但是能不能通过代码来给连接上的移动端分配各自的IP.之前都是自动分配的IP.望大神们赐教 C#共享WIFI能通过代码控制给连接的移动端分配IP么 >> csh ...

  3. <Sicily>Inversion Number(线段树求逆序数)

    一.题目描述 There is a permutation P with n integers from 1 to n. You have to calculate its inversion num ...

  4. Linux下安装使用MySQL

    网上找那些安装教程比较多的版本,版本只要不是太旧就行. 下载mysql 5.6.28 通用版64位二进制版,二进制版相当于windows的安装包,可以直接安装,如果是源码版,还需要编译后再进行安装. ...

  5. S-Nim POJ - 2960 Nim + SG函数

    Code: #include<cstdio> #include<algorithm> #include<string> #include<cstring> ...

  6. javascript上下文this

    js的四种调用方式: 一 作为函数的调用: 在严格模式下this,undefined,在非严格模式下指向全局window对象. 二 作为方法调用: this通常指向调用的对象 三 作为构造函数的调用: ...

  7. php动态导出数据成Excel表格

    一.封装 Excel 导出类 include/components/ExecExcel.php <?php /*** * @Excel 导入导出类. */ class ExecExcel { / ...

  8. php八大设计模式之适配器模式

    将一个抽象被具体后的结果转换成另外一个需求所需的格式. 在生活中也处处有适配器的出现,比如转换头,就是让两种不同的规格合适的搭配在一起. <?php header("content-t ...

  9. 【Appium】每次启动是提示安装setting和unlock app的解决办法

    进入appium安装目录,C:\Program Files (x86)\Appium\node_modules\appium\lib\devices\android,编辑android.js文件,注释 ...

  10. 洛谷 P1273 有线电视网 && caioj 1109 树形动态规划(TreeDP)4:比赛转播(树上分组背包总结)

    从这篇博客往前到二叉苹果树都可以用分组背包做 这依赖性的问题,都可以用于这道题类似的方法来做 表示以i为根的树中取j个节点所能得的最大价值 那么每一个子树可以看成一个组,每个组里面取一个节点,两个节点 ...