`
notfatboy
  • 浏览: 237564 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

(转载)XML和JSON两种数据交换格式的比较

阅读更多

目前,在web开发领域,主要的数据交换格式有XML和JSON,对于XML相信每一个web developer都不会感到陌生;相比之下,JSON可能对于一些新步入开发领域的新手会感到有些陌生,也可能你之前已经听说过,但对于XML和 JSON的不同之处可能会不怎么了解。对于在 Ajax开发中,是选择XML还是JSON,一直存在着争议,个人还是比较倾向于JSON的,虽然JSON才处于起步阶段,但我相信JSON一定会有很好 的发展。

先来看看XML与JSON的优缺点:

[  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格式, 便于客户端的访问提取.
5. 因为JSON格式能够直接为服务器端代码使用, 大大简化了服务器端和客户端的代码开发量, 但是完成的任务不变, 且易于维护

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

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

分享到:
评论

相关推荐

    Android使用XML和JSON两种数据格式通过网络通信实现资讯客户端案例

    本案例主要探讨了如何利用XML和JSON这两种数据格式进行网络通信,从而实现资讯的获取和展示。接下来,我们将深入讨论这两个数据格式以及它们在Android中的应用。 XML(eXtensible Markup Language)是一种结构化...

    Json和Xml离线格式化工具

    在IT行业中,数据交换和存储经常涉及两种常见的数据序列化格式:JSON(JavaScript Object Notation)和XML(eXtensible Markup Language)。JSON以其简洁、易读性而被广泛用于Web服务,而XML则因其丰富的结构和强大...

    java的xml和json相互转换工具类,亲测直接用

    在Java开发中,XML(可扩展标记语言)和JSON(JavaScript Object Notation)是两种常见的数据交换格式。它们各自有着不同的特性和应用场景,但有时我们需要将XML数据转换为JSON,或者将JSON数据转换为XML,以满足...

    数据交换格式json和xml到底用谁好

    两种常用的数据交换格式分别是XML(Extensible Markup Language)和JSON(JavaScript Object Notation)。这两种格式各有优势,适用于不同的场景。 #### 二、XML与JSON概述 1. **XML**: - 定义:XML是一种用于...

    jquery.json2xml.js和jquery.xml2json.js

    JSON(JavaScript Object Notation)和XML(eXtensible Markup Language)是两种广泛使用的数据交换格式,它们在Web服务和应用程序之间传输数据时起到至关重要的作用。jQuery是一个流行的JavaScript库,它简化了DOM...

    XML数据生成Json格式代码

    XML(Extensible Markup Language)和JSON(JavaScript Object Notation)是两种常见的数据交换格式,它们在Web服务和应用程序之间传输数据时发挥着重要作用。XML以其结构化和可扩展性著称,而JSON则以轻量级和易于...

    JSON 是一种轻量级的数据交换格式。该文档详细介绍了JSON

    - **API接口**:RESTful API中最常用的数据格式。 - **消息传递**:在消息队列系统中传输数据。 #### 总结 JSON作为一种轻量级的数据交换格式,不仅因其简洁性和易读性而在软件开发领域内得到了广泛的应用,还因其...

    XML to JSON and JSON to XML converter

    XML(Extensible Markup Language)和JSON(JavaScript Object Notation)是两种广泛用于数据交换和存储的格式。XML是一种结构化标记语言,适用于描述复杂的数据结构,而JSON则以更简洁的格式来表示数据,通常用于...

    Jquery xml2Json

    XML(Extensible Markup Language)和JSON(JavaScript Object Notation)是两种常见的数据交换格式,它们在Web开发中扮演着重要角色。XML以标记语言的形式存储数据,结构清晰,适合复杂的数据组织;而JSON则是一种...

    notepad++ Json和Xml数据格式化插件

    在处理Json和Xml这两种常见的数据交换格式时,Notepad++提供了专门的插件,使得用户可以更加方便地对这两种格式的数据进行格式化,从而便于查看和理解数据结构。 Json(JavaScript Object Notation)是一种轻量级的...

    Notepad++ XML和JSON格式化插件(内附操作说明)

    在处理XML和JSON这两种常见的数据交换格式时,Notepad++提供了方便的插件来增强其格式化功能。本文将详细介绍这些插件以及如何在Notepad++中进行安装和使用。 首先,我们要安装“XML Tools”和“JSON Viewer”这两...

    php xml 转json和array

    在IT行业中,XML(eXtensible Markup Language)和JSON(JavaScript Object Notation)是两种广泛使用的数据交换格式。XML以其结构化和可扩展性在Web服务和数据存储中占据重要地位,而JSON则因其简洁性和易读性在...

    xml转json包与教程

    XML(Extensible Markup Language)和JSON(JavaScript Object Notation)是两种常见的数据交换格式,广泛应用于Web服务和数据存储。XML以标记的方式组织数据,结构清晰,适合描述复杂的数据;而JSON则是轻量级的,...

    AFNetworking下的XML和JSON解析

    在iOS开发中,数据交换和存储经常涉及到XML和JSON这两种数据格式。AFNetworking是一个强大的网络请求库,它不仅支持HTTP请求,还提供了XML和JSON的解析功能,使得开发者能够更方便地处理网络返回的数据。本篇文章将...

    android xml转jsonxml转json(两种,一种jar包一种工程lib)

    在Android开发中,数据交换和存储经常涉及到XML与JSON这两种格式的转换。XML(Extensible Markup Language)是一种结构化数据格式,常用于Web服务和配置文件;而JSON(JavaScript Object Notation)则是一种轻量级的...

    xml & json 转换工具

    XML(Extensible Markup Language)和JSON(JavaScript Object Notation)是两种广泛用于数据交换的格式。它们各有特点,XML提供丰富的结构化标记,适合复杂的文档描述,而JSON因其简洁和易于阅读,通常在Web服务中...

    JS实现XML转JSON格式互转压缩包

    在IT行业中,XML(eXtensible Markup Language)和JSON(JavaScript Object Notation)是两种广泛使用的数据交换格式。XML由于其丰富的结构和强大的描述能力,常用于存储和传输复杂的数据,而JSON则以其简洁、易读的...

    json和xml互转

    JSON(JavaScript Object Notation)和XML(eXtensible Markup Language)是两种广泛使用的数据交换格式,它们在互联网上用于传递和存储结构化数据。JSON以其简洁、易读的特性受到开发者喜爱,而XML则以其丰富的结构...

    Xml2Json and Json2Xml

    XML(Extensible Markup Language)和JSON(JavaScript Object Notation)是两种常见的数据交换格式,广泛应用于Web服务和数据传输。XML是一种结构化语言,用于描述数据,而JSON更简洁,通常用于JavaScript应用程序...

    XML与JSON文件代码例子

    XML(Extensible Markup Language)和JSON(JavaScript Object Notation)是两种广泛用于数据交换和存储的格式。它们各自有特定的用途和优势,在不同的应用场景中各有优劣。 XML是一种标记语言,它的设计目标是为了...

Global site tag (gtag.js) - Google Analytics