Ajax中XML和JSON格式的优劣比较

刚做完一个小的使用Ajax的项目。整个小项目使用JavaScript做客户端,使用PHP做服务器端、利用xmlHttpRequest组件作为交互工具,利用XML作为数据传输的格式。做完后基本做一个简单总结,简单分析一下使用XML作为传输格式的优劣。

[   XML ]
使用XML作为传输格式的优势:
1. 格式统一, 符合标准
2. 容易与其他系统进行远程交互, 数据共享比较方便

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


[ JSON ]
那么除了XML格式, 还有没有其他格式, 有一种叫做JSON (JavaScript Object Notation) 的轻量级数据交换格式能够替代XML的工作.

优点:
1. 数据格式比较简单, 易于读写, 格式都是压缩的, 占用带宽小
2. 易于解析这种语言, 客户端JavaScript可以简单的通过eval()进行JSON数据的读取
3. 支持多种语言, 包括ActionScript, C, C#, ColdFusion, Java, JavaScript, Perl, PHP, Python, Ruby等语言服务器端语言, 便于服务器端的解析
4. 在PHP世界, 已经有PHP-JSON和JSON-PHP出现了, 便于PHP序列化后的程序直接调用. PHP服务器端的对象、数组等能够直接生JSON格式, 便于客户端的访问提取.
    另外PHP的PEAR类已经提出了支持 (http://pear.php.net/pepr/pepr-proposal-show.php?id=198)
5. 因为JSON格式能够直接为服务器端代码使用, 大大简化了服务器端和客户端的代码开发量, 但是完成的任务不变, 且易于维护

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

PS: 据说Google的Ajax是使用 JSON+模板 做的


[   JSON相关链接 ]
官方网站: http://www.json.org/
官方网站中译: http://blog.patterns.cn/json/
PEAR::HTML_AJAX: http://pear.php.net/package/HTML_AJAX (相当成熟的Ajax框架, 使用JSON进行数据传输, 包含丰富的客户端和服务器端)
Services_JSON: http://pear.php.net/pepr/pepr-proposal-show.php?id=198
PHP JSON扩展: http://www.aurore.net/projects/php-json/
PHP和JavaScript使用JSON交换数据: http://www.flyinghail.net/archives/10
Ajax Using JSON: http://www.x2blog.cn/lulei/3851.html
XML跟JSON相应比较文章: http://blog.hexun.com/dulao5/912477_d.html
让Service_JSON支持中文: http://blog.sina.com.cn/u/55acd28f01000113


[   目前成熟的客户端框架 ]
Xajax: http://xajax.sourceforge.net (目前在国内使用比较广泛,跟Smarty模板结合良好)
Sajax: http://www.modernmethod.com/sajax/ (框架比较复杂,支持语言较多)

AJAX框架汇总: http://www.huihoo.com/web/ajax/ajax-frameworks.html





******************************************************************************************************

******************************************************************************************************


  ◆可读性

  JSON(Java Object Notation) 和XML的可读性可谓不相上下,一边是建议的语法,一边是规范的标签形式,很难分出胜负。
  ◆可扩展性
  XML天生有很好的扩展性,JSON当然也有,没有什么是XML能扩展,JSON不能的。
  ◆编码难度
  XML有丰富的编码工具,比如Dom4j、JDom等,JSON也有json.org提供的工具,但是JSON的编码明显比XML容易许多,即使不借助工具也能写出JSON的代码,可是要写好XML就不太容易了。
  ◆解码难度
  XML的解析得考虑子节点父节点,让人头昏眼花,而JSON的解析难度几乎为0。这一点XML输的真是没话说。
  ◆实例比较
  XML和JSON都使用结构化方法来标记数据,下面来做一个简单的比较。
  现假设有一个用户数据包括:用户名、密码、所在部门、性别、年龄。
  用XML表示如下:
  <?xml version="1.0" encoding="utf-8"?>
  <user>
  <name>张三 </name>
  <password>123456</password>
  <department>技术部</department>
  <sex>男</sex>
  <old>30</old>
  </user>
  用JSON表示如下:
  {
  "name":"张三",
  "password":"123456",
  "department":"技术部",
  "sex":"男",
  "old":30
  }

  与XML一样,JSON也是基于文本的,且它们都使用Unicode编码,同样具有可读性。XML比较适合于标记文档,而JSON却更适合于时行数据交换处理。



JSON与XML最大的不同在于XML是一个完整的标记语言,而JSON不是。这使得XML在程式判读上需要比较多的功夫。主要的原因在于XML的设计理念与JSON不同。XML利用标记语言的特性提供了绝佳的延展性(如XPath),在数据存储,扩展及高级检索方面具备对JSON的优势,而JSON则由于比XML更加小巧,以及浏览器的内建快速解析支持,使得其更适用于网络数据传输领域。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值