目前,在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成为理想的数据交换语言。具体的可以看这篇文章:http://www.json.org/json-zh.html

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仍有不可动摇的地位

于数据交换格式XML和JSON的比较相关推荐

  1. Ajax--概述、xhr对象的常用属性和方法、xhr的常用事件、xhr对象发送POST请求、xhr对象发送GET请求、xhr对象的兼容性问题、数据交换格式(XML、JSON)

    一.概述 1.1 发展历程 在开始之前先来看一下Ajax的工作原理吧,如下图所示: Ajax全称Asynchronous javascript and xml(异步 JavaScript 和 XML) ...

  2. 前端与服务器通讯的数据交换格式XML 、JSON

    数据交换格式 就是服务器端与客户端之间进行数据传输与交换的格式. 前端领域,经常提及的两种数据交换格式分别是XML(使用较少)和JSON(主要) XML XML和HTML的区别 都是标记语言,但是,他 ...

  3. xml的数据交换以及xml和json数据交换的比较

    一.什么是Web Service ? Web Services 是有企业发布的完成其特定商务需求的在线应用服务,其他公司或应用软件能够通过internet来访问并使用这项在线服务 WebServicc ...

  4. 主要的数据交换格式XML与JASON

    数据交换格式就像两个人在聊天一样,采用彼此都听得懂的语言.其中的语言就相当于通信中的数据交换格式.数据交换格式主要分为纯文本格式,XML格式和JSON格式,其中纯文本格式是一种简单的,无格式的数据交换 ...

  5. XML和JSON 数据交换格式

    为什么80%的码农都做不了架构师?>>>    一.什么是数据交换格式? 客户端与服务器常用数据交换格式xml.json.html 二.数据交换格式应用场景 移动端(安卓.IOS)通 ...

  6. 数据交换格式与SpringIOC底层实现

    课程目标 XML和JSON Java反射机制 手写SpringIOC 什么是数据交换格式 客户端与服务器常用数据交换格式xml.json.html 数据交换格式用场景 移动端(安卓.IOS)通讯方式采 ...

  7. Java 数据交换格式反射机制SpringIOC原理分析

    数据交换格式&反射机制&SpringIOC原理分析 什么是数据交换格式? 数据交换格式使用场景 JSON简单使用 什么是JSON? JSON格式的分类 常用JSON解析框架 使用fas ...

  8. XML和JSON两种数据交换格式的比较

    目前,在web开发领域,主要的数据交换格式有XML和JSON,对于XML相信每一个web developer都不会感到陌生: 相比之下,JSON可能对于一些新步入开发领域的新手会感到有些陌生,也可能你 ...

  9. 【Java】JSON数据交换格式及其使用案例(聊天工具)

    数据交换格式主要分为纯文本格式,XML格式和JSON格式.其中纯文本格式是一种简单的,无格式的数据交换方式:而XML格式和JSON格式可以带有描述信息,它们叫做"自描述的"结构化文 ...

最新文章

  1. 小猿圈自学web前端之CSS3动画练习案例:用CSS3做个钟表
  2. H264 NALU 使用PS封装 RTP发送
  3. dede使用方法----如何自定义字段
  4. uvalive4836(枚举)
  5. 【安利向】入坑半年的GPU云平台,三分钟训练起飞!xiu~
  6. 城乡投票源码php_响应式投票系统(支持微信、手机) php版 v3.2
  7. java简单数据类型的知识点
  8. php 图片保存到本地文件,php 远程图片保存到本地的函数类
  9. JAVA常见算法题(十九)
  10. 等价类划分法测试用例设计
  11. 数学模型 Lotka-Volterra
  12. sw转cad映射文件_SW转CAD图层映射
  13. github:master提交项目到远程仓库出现“There isn’t anything to compare.”
  14. python模块安装(大合集)
  15. java 哲学家_Java哲学家进餐问题|多线程
  16. 2020年数学建模国赛A题题目和解题思路
  17. Linux常用命令及解析
  18. 博弈论分析题_微观经原笔记(四)一些关于博弈论的习题
  19. 字符变量 单引号 c语言,【C】 14_单引号和双引号
  20. QT+Python停车场车牌识别计费管理系统

热门文章

  1. 异常重试_Spring-Retry重试实现原理
  2. ShowDoc 软件开发团队接口文档管理利器
  3. BZOJ3864 hero meet devil
  4. BZOJ3170: [Tjoi2013]松鼠聚会 - 暴力
  5. UIImagePickerController和UIAlertController结合使用
  6. Objective-C中class、Category、Block的介绍
  7. Sql自动更新不同IP的数据库数据。(link Server)
  8. TKStudio MDK 工具链解决办法
  9. 计算机原理之程序是怎么运行的
  10. [C#]委托和事件(详细讲解)