web应用的数据传输格式
来源:互联网 发布:房产经纪人签单软件 编辑:程序博客网 时间:2024/05/28 15:29
一、纯文本和简单的名称/值对
二、XML格式
三、JSON格式
我们要重点比较的是JSON和XML
1.数据交换格式比较之XML和JSON语法:
XML:extensible markup language,一种类似于HTML的语言,他没有预先定义的标签,使用DTD(document type definition)文档类型定义来组织数据;格式统一,跨平台和语言,早已成为业界公认的标准。
JSON : JavaScript Object Notation 是一种轻量级的数据交换格式。JSON可以轻松的把js对象转为可以随请求发送的数据。易于人阅读和编写。同时也易于机器解析和生成。JSON采用完全独立于语言的文本格式。这些特性使JSON成为理想的数据交换语言。
2.数据交换格式比较之解析:
XML目前设计了两种解析方式:DOM和SAX;
DOM是把一个数据交换格式XML看成一个DOM对象,需要把XML文件整个读入内存,这一点上JSON和XML的原理是一样的,但是XML要考虑父节点和子节点,这一点上JSON的解析难度要小很多,因为JSON构建于两种结构:1.key/value,键值对的集合;2.值的有序集合,可理解为数组;
SAX不需要整个读入文档就可以对解析出的内容进行处理,是一种逐步解析的方法。程序也可以随时终止解析。这样,一个大的文档就可以逐步的、一点一点的展现出来,所以SAX适合于大规模的解析。这一点,JSON目前是做不到得。
所以,JSON和XML的轻/重量级的区别在于:JSON只提供整体解析方案,而这种方法只在解析较少的数据时才能起到良好的效果;而XML提供了对大规模数据的逐步解析方案,这种方案很适合于对大量数据的处理。
3.数据交换格式比较之格式的选择:
XML有丰富的编码工具,比如Dom4j、JDom等,JSON也有json.org提供的工具,虽然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仍有不可动摇的地位。
有些对比参考了网上的资料,自己加以整理说明了一下。
- web应用的数据传输格式
- ajax的数据传输格式
- AJAX的数据传输格式
- 数据传输的常用格式JSON
- 以XML为数据传输格式的Web service设计方案示列
- Dto--数据传输对象的应用
- MIPI DSI多通道数据传输的格式
- 万能的数据传输格式——XML
- web数据传输只有两种格式:json和xml
- web数据传输
- Android跨应用间的数据传输
- Android跨应用间的数据传输
- Android跨应用间的数据传输
- 数据传输格式xml/json
- W6s数据传输格式
- AJAX笔记-数据传输格式
- thrift TBinaryProtocol 数据传输格式
- Android网络通信中数据传输的JSON格式使用
- 稀疏矩阵的转置
- zxcvbn: realistic password strength estimation
- JDK1.7中引用sun.management.ManagementFactory
- 各大主要组织
- 一次学习成绩的考差,并不能否定每次都考不好
- web应用的数据传输格式
- android 蓝牙各种UUID
- jQuery学习笔记之Ajax在jQuery中的应用
- POJ1976(01背包)t
- Struts2 Action 单例多例模式
- Delphi WebBrowser 无法调用当前浏览器的版本
- 一个男人写给媳妇的搞笑检讨书
- CORBA的简单介绍及HelloWorld
- 最长公共子序列