XML和JSON两种数据交换格式的比较
目前,在web开发领域,主要的数据交换格式有XML和JSON,对于XML相信每一个web developer都不会感到陌生; 相比之下,JSON可能对于一些新步入开发领域的新手会感到有些陌生,也可能你之前已经听说过,但对于XML和 JSON的不同之处可能会不怎么了解。对于在 Ajax开发中,是选择XML还是JSON,一直存在着争议,个人还是比较倾向于JSON的,虽然JSON才处于起步阶段,但我相信JSON最终会取代 XML成为Ajax的首选,到时Ajax可能要更名为Ajaj(Asynchronous JavaScript and JSON)了;
1.数据交换格式比较之关于XML和JSON:
XML:extensible markup language,一种类似于HTML的语言,他没有预先定义的标签,使用DTD(document type definition)文档类型定义来组织数据;格式统一,跨平台和语言,早已成为业界公认的标准。具体的可以问Google或百度。相比之JSON这种 轻量级的数据交换格式,XML可以称为重量级的了。
JSON : JavaScript Object Notation 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming Language , Standard ECMA-262 3rd Edition – December 1999 的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。
2.数据交换格式比较之关于轻量级和重量级:
轻量级和重量级是相对来说的,那么XML相对于JSON的重量级体现在哪呢?我想应该体现在解析上,XML目前设计了两种解析方式:DOM和SAX;
DOM是把一个数据交换格式XML看成一个DOM对象,需要把XML文件整个读入内存,这一点上JSON和XML的原理是一样的,但是XML要考虑 父节点和子节点,这一点上JSON的解析难度要小很多,因为JSON构建于两种结构:key/value,键值对的集合;值的有序集合,可理解为数组;
SAX不需要整个读入文档就可以对解析出的内容进行处理,是一种逐步解析的方法。程序也可以随时终止解析。这样,一个大的文档就可以逐步的、一点一点的展现出来,所以SAX适合于大规模的解析。这一点,JSON目前是做不到得。
所以,JSON和XML的轻/重量级的区别在于:JSON只提供整体解析方案,而这种方法只在解析较少的数据时才能起到良好的效果;而XML提供了对大规模数据的逐步解析方案,这种方案很适合于对大量数据的处理。
3.数据交换格式比较之关于数据格式编码及解析的难度:
在编码上,虽然XML和JSON都有各自的编码工具,但是JSON的编码要比XML简单,即使不借助工具,也可以写出JSON代码,但要写出好的 XML代码就有点困难;与XML一样,JSON也是基于文本的,且它们都使用Unicode编码,且其与数据交换格式XML一样具有可读性。
主观上来看,JSON更为清晰且冗余更少些。JSON网站提供了对JSON语法的严格描述,只是描述较简短。从总体来看,XML比较适合于标记文档,而JSON却更适于进行数据交换处理。
在解析上,在普通的web应用领域,开发者经常为XML的解析伤脑筋,无论是服务器端生成或处理XML,还是客户端用 JavaScript 解析XML,都常常导致复杂的代码,极低的开发效率。
实际上,对于大多数web应用来说,他们根本不需要复杂的XML来传输数据,XML宣称的扩展性在此就很少具有优势;许多Ajax应用甚至直接返回 HTML片段来构建动态web页面。和返回XML并解析它相比,返回HTML片段大大降低了系统的复杂性,但同时缺少了一定的灵活性。同XML或HTML 片段相比,数据交换格式JSON 提供了更好的简单性和灵活性。在web serivice应用中,至少就目前来说XML仍有不可动摇的地位。
转载于:https://www.cnblogs.com/lijc1990/p/3542274.html
XML和JSON两种数据交换格式的比较相关推荐
- JSON——IT技术人员都必须要了解的一种数据交换格式
JSON作为目前Web主流的数据交换格式,是每个IT技术人员都必须要了解的一种数据交换格式.尤其是在Ajax和REST技术的大行其道的当今,JSON无疑成为了数据交换格式的首选! 今天大家就和猪哥一起 ...
- Json学习总结(7)——JSON为什么是数据交换格式的首选
一.XML 在讲JSON之前,我觉得有必要先带大家了解一下XML(Extensible Markup Language 可扩展标记语言),因为JSON正在慢慢取代XML. 1.XML起源 早期Web发 ...
- Ajax--概述、xhr对象的常用属性和方法、xhr的常用事件、xhr对象发送POST请求、xhr对象发送GET请求、xhr对象的兼容性问题、数据交换格式(XML、JSON)
一.概述 1.1 发展历程 在开始之前先来看一下Ajax的工作原理吧,如下图所示: Ajax全称Asynchronous javascript and xml(异步 JavaScript 和 XML) ...
- 前端与服务器通讯的数据交换格式XML 、JSON
数据交换格式 就是服务器端与客户端之间进行数据传输与交换的格式. 前端领域,经常提及的两种数据交换格式分别是XML(使用较少)和JSON(主要) XML XML和HTML的区别 都是标记语言,但是,他 ...
- Ajax学习(3)XMLHttpRequest的使用+数据交换格式(JSON)
XMLHttpRequest的使用 XMLHttpRequest(简称 xhr)是浏览器提供的 Javascript 对象,可以请求服务器上的数据资源.(jQuery 中的 Ajax 函数,就是基于 ...
- 数据交换格式与SpringIOC底层实现
课程目标 XML和JSON Java反射机制 手写SpringIOC 什么是数据交换格式 客户端与服务器常用数据交换格式xml.json.html 数据交换格式用场景 移动端(安卓.IOS)通讯方式采 ...
- JSON-标准的数据交换格式
文章目录 一.JSON概述 二.复杂的JSON对象 三.JSON-eval函数 四.把JSON数据渲染到表格中 一.JSON概述 1.什么是JSON,有什么用? JSON是一种行业内的数据 ...
- XML和JSON 数据交换格式
为什么80%的码农都做不了架构师?>>> 一.什么是数据交换格式? 客户端与服务器常用数据交换格式xml.json.html 二.数据交换格式应用场景 移动端(安卓.IOS)通 ...
- 于数据交换格式XML和JSON的比较
目前,在web开发领域,主要的数据传输格式有XML和JSON,对于XML相信每一个web developer都不会感到陌生:相比之下,JSON可能对于一些新步入开发领域的新手会感到有些陌生,也可能你之 ...
最新文章
- 芯片是怎么制造的?为什么那么难?
- Linux系统关闭或重新启动主机的命令详解
- 浅析Hibernate映射(一)——基本映射
- 81. 搜索旋转排序数组 II(014)二分查找+思路+详解+二种做法
- mysql优化varchar索引_MySQL优化--概述以及索引优化分析
- c语言 方程改main的值_C语言和汇编语言是什么?他们之间可以有怎样的合作?为你解析...
- Spark基础学习笔记10:Scala集成开发环境
- javascript MouseEvent对象
- 计算机辅助构成和图像处理,计算机辅助图像处理技术,Image process computer-assisted,音标,读音,翻译,英文例句,英语词典...
- linux vga 分辨率低,通过 VGA 接口连接显示器时分辨率不正确
- quora ios_企业家的Quora指南
- 已知从1970年1月1日0分0秒到目前的总秒数计算当前时间
- iOS swift MD5加密
- 斯伦贝谢宣布用债券交换斯伦贝谢控股公司的三种优先票据
- 微信公众号签到,签到后在活动大屏中实时展示签到人信息,也可以导出签到人信息用于抽奖
- 黑苹果安装教程OC引导
- “一个部族,一个民族,一个弗雷尔卓德。”
- PR视频剪辑教程_02_导入素材与新建序列
- Fbx文件解析(一)——FBX SDK for Windows环境配置
- fxssvc.exe
热门文章
- 聚簇索引、非聚簇索引、普通索引、唯一索引
- java 控制 android_Java For Android - 流程控制
- 【译】Blockchain-based Machine Learning Marketplaces
- Hook技术--Activity的启动过程的拦截
- libnghttp2 NDK 交叉编译
- RUNNING JUPYTER NOTEBOOKS ON A REMOTE SERVER VIA SSH
- 通过QEMU 和 IDA Pro远程调试设备固件
- 【Android应用保护技术探索之路系列】之一:Android应用保护技术开篇
- arcsoft panorama maker 6_葫芦娃 本领大——中国邮政将于2020年6月1日发行动画——葫芦兄弟特种邮票...
- python手写均值滤波器_python手写均值滤波