`

Ajax:拥抱JSON,让XML走开

阅读更多
Ajax(Asynchronous JavaScript and XML)说到底就是一种浏览器异步读取服务器上XML内容的技术。现在的技术凡是跟XML扯上关系,再加上个概念做幌子,就像金装了一样,拽得不行。门外的人看得很是热闹,门里的人摇摇头不外如是。XML呢,跨平台的新潮语言?其实XML=TXT。XML只是符合很多规范的文本。它本身什么都不是,只是保存字符的文件。而浏览器异步读取的只是服务器上的文本内容,所以在Ajax开发时完全不必拘泥于XML。本文介绍了JSON的基本原理、JSON的构造格式,在文末比较了XML与JSON的优缺点

版权所有,转载请注明,来自www.jialing.net

Ajax(Asynchronous JavaScript and XML)说到底就是一种浏览器异步读取服务器上XML内容的技术。现在的技术凡是跟XML扯上关系,再加上个概念做幌子,就像金装了一样,拽得不行。门外 的人看得很是热闹,门里的人摇摇头不外如是。XML呢,跨平台的新潮语言?其实XML=TXT。XML只是符合很多规范的文本。它本身什么都不是,只是保 存字符的文件。而浏览器异步读取的只是服务器上的文本内容,所以在Ajax开发时完全不必拘泥于XML。[版权所有,www.jialing.net]




JSON的来历

XML 的作用是格式化数据内容。如果我们不用XML还有什么更好的方法吗?这个答案是JSON。介绍JSON之前我先介绍一下JavaScript这门脚本语 言。脚本语言自身有动态执行的天赋。即我们可以把想要执行的语句放在字符串里,通过eval()这个动态执行函数来执行。字符串里的内容会像我们写的脚本 一样被执行。
示例1:
<HTML>
<HEAD>
<TITLE>eval example 1</TITLE>
</HEAD>
<BODY>
<script>
str = "alert('hello')";
eval(str);
</script>
</BODY>
</HTML>
打开页面会弹出hello窗口。
我们可以在字符串中放任何脚本语句,包括声明语句:
<HTML>
<HEAD>
<TITLE>eval example 2</TITLE>
</HEAD>
<BODY>
<script>
define = "{name:'Michael',email:'17bity@gmail.com'}";
eval("data = "+define);
alert("name:"+data.name);
alert("email:"+data.email);
</script>
</BODY>
</HTML>
如果我们在后台异步传来的文本是JavaScript的声明语句,那么不是一条eval方法就能解析了?对于解析复杂的XML,这样的效率是多么大的提高啊!
现在就来告诉你什么是JSON:JavaScript Object Notation。我更愿意把它翻译为JavaScript对象声明。比如要从后台载入一些通讯录的信息,如果写成XML,如下:

<contact>
    <friend>
        <name>Michael</name>
        <email>17bity@gmail.com</email>
        <homepage>http://www.jialing.net</homepage>
    </friend>
    <friend>
        <name>John</name>
        <email>john@gmail.com</email>
        <homepage>http://www.john.com</homepage>
    </friend>
    <friend>
        <name>Peggy</name>
        <email>peggy@gmail.com</email>
        <homepage>http://www.peggy.com</homepage>
    </friend>
</contact>

而写成JSON呢:
[
  {
   name:"Michael",
   email:"17bity@gmail.com",
   homepage:"http://www.jialing.net"
},
{
   name:"John",
   email:"john@gmail.com",
   homepage:"http://www.jobn.com"
},
  {
   name:"Peggy",
   email:"peggy@gmail.com",
   homepage:"http://www.peggy.com"
}
]
简 单的不只是表达上,最重要的是可以丢弃让人晕头转向的DOM解析了。因为只要符合JavaScript的声明规范,JavaScrip会自动帮你解析好 的。Ajax中使用JSON的基本方法是前台载入后台声明JavaScript对象的字符串,用eval方法来将它转为实际的对象,最后通过 DHTML更新页面信息。


JSON的格式

JSON的基本格式如下,图片来自json.org:
对象是属性、值对的集合。一个对象的开始于"{",结束于"}"。每一个属性名和值间用":"提示,属性间用","分隔。



数组是有顺序的值的集合。一个数组开始于"[",结束于"]",值之间用","分隔。



值可以是引号里的字符串、数字、true、false、null,也可以是对象或数组。这些结构都能嵌套。



字符串的定义和C或Java基本一致。



数字的定义也和C或Java基本一致。




JSON VS XML

可读性
JSON和XML的可读性可谓不相上下,一边是建议的语法,一边是规范的标签形式,很难分出胜负。

可扩展性
XML天生有很好的扩展性,JSON当然也有,没有什么是XML能扩展,JSON不能的。

编码难度
XML有丰富的编码工具,比如Dom4j、JDom等,JSON也有json.org提供的工具,但是JSON的编码明显比XML容易许多,即使不借助工具也能写出JSON的代码,可是要写好XML就不太容易了。

解码难度
XML的解析得考虑子节点父节点,让人头昏眼花,而JSON的解析难度几乎为0。这一点XML输的真是没话说。

流行度
XML已经被业界广泛的使用,而JSON才刚刚开始,但是在Ajax这个特定的领域,未来的发展一定是XML让位于JSON。到时Ajax应该变成Ajaj(Asynchronous JavaScript and JSON)了。

[版权所有,www.jialing.net]


附:
JSON.org : http://www.json.org/
JSON in JavaScript : http://www.json.org/js.html
JSON: The Fat-Free Alternative to XML : http://www.json.org/xml.html
JSON and the Dynamic Script Tag: Easy, XML-less Web Services for JavaScript: http://www.xml.com/pub/a/2005/12/21/json-dynamic-script-tag.html
Using JSON (JavaScript Object Notation) with Yahoo! Web Services: http://developer.yahoo.com/common/json.html
分享到:
评论
1 楼 sl514 2011-10-24  
强烈推荐 强大的JSON在线工具

相关推荐

    jquery.json2xml.js和jquery.xml2json.js

    在jQuery的基础上,`jquery.json2xml.js` 和 `jquery.xml2json.js` 这两个脚本提供了方便的方法来在JSON和XML之间进行转换,从而让开发者无需深入了解这两种格式的复杂性,就能轻松地在它们之间进行数据互换。...

    ajax+json实例

    在现代Web开发中,AJAX(Asynchronous JavaScript and XML)技术已经成为提升用户体验的重要工具,它允许网页在不刷新整个页面的情况下与服务器进行数据交互。结合JSON(JavaScript Object Notation)作为数据交换...

    Ajax中使用JSON传输数据

    在Web开发中,Ajax(Asynchronous JavaScript and XML)技术被广泛用于实现页面的无刷新更新,提高用户体验。JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,因其易读性、易写性和高效性,成为了...

    Ajax&Json&XML.html

    Ajax&Json&XML常用基本操作 JSON数据和Java对象的相互转换 常见的解析器:Jsonlib,Gson,fastjson,jackson JSON转为Java对象 1. 导入jackson的相关jar包 2. 创建Jackson核心对象 ObjectMapper 3.调用...

    Ajax 解析XML+json总结

    2. **体积**:JSON通常比XML更紧凑,减少了网络传输的时间和带宽消耗。 3. **可读性**:XML提供了丰富的结构和注释,对于复杂数据结构,其可读性较强;而JSON简洁明了,适合轻量级的数据交换。 总结,Ajax技术在...

    用JSON替换XML

    2. **易读性**:JSON的格式更加接近自然语言,使得人类阅读和编写都更为容易。 3. **易解析性**:由于其结构简单,大多数现代编程语言都内置了JSON的解析功能,无需额外的库或复杂的解析器。 4. **性能**:由于数据...

    使用Ajax动态加载JSON文件

    Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。而JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和...

    前台ajax与后台json传递

    Ajax(Asynchronous JavaScript and XML)技术允许我们在不刷新整个页面的情况下,实现局部数据的更新,而Json(JavaScript Object Notation)则是一种轻量级的数据交换格式,易于人阅读和编写,同时也方便机器解析...

    ajax获取嵌套JSON,树形控件显示

    在IT领域,Ajax(异步JavaScript和XML)是一种在不刷新整个页面的情况下更新部分网页内容的技术,而jQuery是一个广泛使用的JavaScript库,它简化了DOM操作、事件处理和AJAX交互。ZTree是一款基于jQuery的树形插件,...

    ajax json 遍历json数组

    ajax json 遍历json数组,json的说明文档,json操作说明

    AjaxJson 实例 AjaxJson

    AjaxJson 是一种在 Web 应用程序中实现异步数据交换的技术,它结合了 AJAX(Asynchronous JavaScript and XML)和 JSON(JavaScript Object Notation)的优势,使得网页可以在不刷新整个页面的情况下与服务器进行...

    ajax返回json对象.zip

    - **优势**:JSON比XML更简洁,解析速度更快,适合在网络上传输大量数据。 3. **Ajax发送JSON请求**: - **创建XMLHttpRequest对象**:在JavaScript中,首先需要创建XMLHttpRequest实例。 - **打开连接**:使用`...

    Ajax\XML and JSON for Ajax

    2. **提高性能**:JSON的数据体积通常比等效的XML数据小,解析速度也更快,这对于提高Ajax应用的响应速度至关重要。 3. **跨平台兼容性**:尽管JSON源自JavaScript,但它可以被任何能够解析JSON的编程语言所使用,...

    什么是Ajax和json???

    - **大小**:JSON通常比XML更紧凑。 - **解析**:大多数现代浏览器和服务器都内置了解析JSON的功能,使得JSON的解析更简单快捷。 #### 3. Ajax与JSON的应用 **在实际开发中,Ajax经常与JSON一起使用:** - **数据...

    AJAX和struts2传递JSON数组

    在Web开发中,AJAX(Asynchronous JavaScript and XML)是一种技术,它允许我们在不刷新整个页面的情况下与服务器进行异步数据交换。而Struts2是一个基于MVC(Model-View-Controller)架构的Java Web框架,它极大地...

    json2+jsonplugin struts2整合ajax时,使用json时需要的jar包

    在Struts2框架中整合Ajax以实现异步数据交互,JSON(JavaScript Object Notation)扮演了关键角色。JSON是一种轻量级的数据交换格式,它允许Web应用与服务器之间高效地传输数据,而无需进行繁琐的HTTP请求。在这个...

    jQuery xml-to-json xml转JSON插件

    jQuery xml-to-json插件是一种用于将XML数据转换为JavaScript Object Notation (JSON)格式的工具。在Web开发中,XML和JSON都是常见的数据交换格式,但它们有着不同的应用场景和优势。XML(Extensible Markup ...

Global site tag (gtag.js) - Google Analytics