作家
登录

XML的代替者----JSON

作者: 来源:www.28hudong.com 2013-03-30 03:22:04 阅读 我要评论

我个人觉得PHP与Javascript各有长处,如果能完美的结合起来,那将创造出许许多多的奇迹! 我是初次写此类文章,Bug难免,请各位指正~ 现在AJAX应用非常流行,而在AJAX中客户端Javascript和服务端动态脚本的通信是关键。如果传输的信息比较简单,通常我们会直接采用字符串的方式,如果信息结构复杂一点,则通常用XML文档。XML文档虽然应用广泛,但是用php生成和用Javascript处理却不是一件很容易的事情。这里我推荐一种XML文档的比较好简化替代方案:JSON! 首先我们来了解一下Javascript的基础知识。 1.创建数组,可以用JS内建的类Array来初始化,也可以用JSON符号"[]"。下面通过两种方式创建的arr1和arr2的实质是一样的: var arr1 = new Array(); arr1[0] = "apple"; arr1[1] = "google"; arr1[2] = "longbill"; var arr2 = ["apple","google","longbill"]; 注意,数组的索引也可以是字符串,如 arr1["name"] = "longbill"; 这时的数组就相当于对象了。。。 2.创建对象,可以用JS内建的类Object来初始化,也可以用JSON符号"{}"。下面通过两种方式创建的obj1和ob2的实质也是一样的: var obj1 = new Object(); obj1.name = "longbill"; obj1.age = 18; var obj2 = { name:"longbill",age:18 }; 注意,这里"{"和"}"之间必须写成"键:值"的形式,而且不同的"键:值"之间要用","分割。 "键"中也可以包含空格等特殊字符,此时要用""(引号)来引用,如 "phone number":123456 其实在JS中,数组的本质是一个对象,对象本身也是一个数组。所以, obj1.name 和 obj1["name"] 是同一个引用。 我们还可以通过JSON符号的嵌套来定义复杂的S对象: var people = [ { name:"longbill", age:18 }, { name:"neal", age:19 }, { name:"glocklee", age:17 } ]; //这个应该看的懂吧~~ 大部分XML文档都可以用JSON来表达: <?xml version="1.0"?> <root> <book> <name>Ju love</name> <price>$15</price> </book> <book> <name>Javascrip</name> <price>$25</price> </book> </root> 如果用JSON就可以表达为: { root: [ { name:"Ju love", price:"$15" }, { name:"Javascript", price:"$25" } ]} 是不是简化很多? 而且客户端JS处理起来也很简单,只要用执行字符串函数 "eval" 就可以将JSON信息提取出来,而如果是XML文档,那就不的不用大量的标准DOM操作来提取其中的数据。如: //已经用AJAX从服务端下载了一个JSON文件(字符串),保存在变量 json 里 eval("var myvar = "+json); //这样,JSON里的信息就表达在myvar这个变量里了。 缺点:一旦JSON的格式错误,将导致服务端JS系统错误,甚至崩溃。 解决办法: 最好在eval之前使用try(试探执行),如 //已经用AJAX从服务端下载了一个JSON文件(字符串),保存在变量 json 里 try { eval("var myvar = "+json); } catch(e) { alert('json syntax error!'); } //这样,即使JSON格式错误,也只会弹出一个提示框,而不会抛出一个脚本错误!

  推荐阅读

  服务器安全设置的几个注册表设置

不显示上次登录的用户名复制代码 代码如下:Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlLsa] "restrictanonymous"=dword:000000013389端口号修改reg文件复制代码>>>详细阅读


本文标题:XML的代替者----JSON

地址:http://www.17bianji.com/kaifa2/JS/30238.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)