`
winzenghua
  • 浏览: 1326943 次
  • 性别: Icon_minigender_2
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

Ajax:拥抱JSON,让XML走开

阅读更多

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:

·对象是属性、值对的集合。一个对象的开始于"{",结束于"}"。每一个属性名和值间用":"提示,属性间用","分隔。


Ajax:拥抱JSON,让XML走开(图一)
·数组是有顺序的值的集合。一个数组开始于"[",结束于"]",值之间用","分隔。

Ajax:拥抱JSON,让XML走开(图二)

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

Ajax:拥抱JSON,让XML走开(图三)

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

Ajax:拥抱JSON,让XML走开(图四)

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

Ajax:拥抱JSON,让XML走开(图五)

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)了。

分享到:
评论

相关推荐

    AJAX:使用异步JavaScript和XML创建网页AJAX: Creating Web Pages with Asynchronous JavaScript and XML

    您将探索如何使用Ajax来增强站点并使其具有Web 2.0的感觉,以及其他JavaScript增强如何将Web浏览器和网站变成真正的应用程序。

    Ajax&Json&XML.html

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

    ajax json 遍历json数组

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

    ajax+json实例

    在.NET中使用AJAX技术来做服务器端和客户端交互,用JSON做为在异步应用程序中发送和接收信息的数据格式。

    Ajax中使用JSON传输数据

    json.js and json.jar 博文链接:https://terran-li2008.iteye.com/blog/199088

    有关于JSON的一些资料

    json中文官网(也就一个页面)http://www.json.org/json-zh.htmlc#的一个实现...2:Ajax:拥抱JSON,让XML走开 http://searchwebservices.techtarget.com.cn/tips/481/2708981.shtmlAjax Usi

    使用Ajax动态加载JSON文件

    使用Ajax动态加载JSON文件的实例源码

    jquery ajax Datatable与json之间数据转换

    jquery ajax Datatable与json之间数据转换jquery ajax Datatable与json之间数据转换jquery ajax Datatable与json之间数据转换jquery ajax Datatable与json之间数据转换jquery ajax Datatable与json之间数据转换...

    AJax详解.chm

    hex163下载频道:所有精品资料全部无分下载! 第 1 部分:Ajax 简介 第 2 部分:: 使用 JavaScript 和 Ajax 发出异步请求 第 3 部分: Ajax 中的高级...第 15部分:面向 Java 开发人员的 Ajax: 探索 Google Web Toolkit

    Ajax异步请求JSon数据(图文详解)

    上一篇讲了Ajax请求数据text类型,text和html都是处理比较简答的数据,而在编程过程中使用Ajax调用数据的时候,难免要进行逻辑的处理,接受的数据也变的复杂比如数组类型的数据,这时候就需要使用JSON数据类型进行...

    AjaxJson 实例 AjaxJson

    AjaxJson 实例 讲解 最基本的用法 给初学者 有很大帮助 这是 本人老师的实例 呵呵

    Ajax 解析XML+json总结

    Ajax 解析XML+json总结,很好的资源哦。欢迎大家来下载。

    Beginning JavaScript with DOM Scripting and Ajax: Second Editon

    As well as focusing on client-side JavaScript, you will also learn how to work with the Browser Object Model, the Document Object Model (DOM), how to use XML and JSON as well as communicate with ...

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

    本demo的目的是将多层json数据(一级分类嵌套着二级) 解析成单层,然后将键改为符合插件需要的值,不然没法显示 代码测试真实有效,就是请求的地址大家需要改一下,因为那是我的局域网地址

    前台ajax与后台json传递

    解决从前台到后台数据传输的详细代码及注释

    Ajax-json.zip

    Ajax-json.zip,我的教程库:javascript和json:...,ajax代表异步javascript和xml。它是多种web技术的集合,包括html、css、json、xml和javascript。它用于创建动态网页,其中网页的小部分在不重新加载网页的情况下更改。

    2020年 json,xml,ajax封装.rar

    2020年 json,xml,ajax封装.rar

Global site tag (gtag.js) - Google Analytics