您好,欢迎访问一九零五行业门户网

XML的代替者----JSON_json

我个人觉得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来表达:
ju love 
    $15
javascrip 
    $25
如果用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格式错误,也只会弹出一个提示框,而不会抛出一个脚本错误!
其它类似信息

推荐信息