龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > Javascript编程 >

JavaScript入门之对象与JSON(1)(3)

时间:2013-03-06 14:58来源:未知 作者:admin 点击:
分享到:
JSON及其使用 JSON全称为JavaScript对象表示法(JavaScript Object Notation),即通过字面量来表示一个对象,从简单到复杂均可使用此方式。比如: strong var obj={ nam

JSON及其使用

JSON全称为JavaScript对象表示法(JavaScript Object Notation),即通过字面量来表示一个对象,从简单到复杂均可使用此方式。比如:

  1. <strong>var obj = {  
  2.     name : "abruzzi",  
  3.     age : 26,  
  4.     birthday : new Date(1984, 4, 5),  
  5.     addr : {  
  6.        street : "Huang Quan Road",  
  7.        xno : "135" 
  8.     }  
  9. }</strong> 

这种方式,显然比上边的例子简洁多了,没有冗余的中间变量,很清晰的表达了obj这样一个对象的结构。事实上,大多数有经验的JavaScript程序员更倾向与使用这种表示法,包括很多JavaScript的工具包如jQuery,ExtJS等都大量的使用了JSON。JSON事实上已经作为一种前端与服务器端的数据交换格式,前端程序通过Ajax发送JSON对象到后端,服务器端脚本对JSON进行解析,还原成服务器端对象,然后做一些处理,反馈给前端的仍然是JSON对象,使用同一的数据格式,可以降低出错的概率。

而且,JSON格式的数据本身是可以递归的,也就是说,可以表达任意复杂的数据形式。JSON的写法很简单,即用花括号括起来的键值对,键值对通过冒号隔开,而值可以是任意的JavaScript对象,如简单对象String,Boolean,Number,Null,或者复杂对象如Date,Object,其他自定义的对象等。

JSON的另一个应用场景是:当一个函数拥有多个返回值时,在传统的面向对象语言中,我们需要组织一个对象,然后返回,而JavaScript则完全不需要这么麻烦,比如:

  1. <strong>function point(left, top){  
  2.     this.left = left;  
  3.     this.top = top;  
  4.     //handle the left and top  
  5.     return {x: this.left, y:this.top};  
  6. }</strong> 

直接动态的构建一个新的匿名对象返回即可:

  1. <strong>var pos = point(3, 4);  
  2. //pos.x = 3;  
  3. //pos.y = 4;</strong> 

使用JSON返回对象,这个对象可以有任意复杂的结构,甚至可以包括函数对象。

在实际的编程中,我们通常需要遍历一个JavaScript对象,事先我们对对象的内容一无所知。怎么做呢?JavaScript提供了for..in形式的语法糖:

  1. <strong>for(var item in json){  
  2.     //item为键  
  3.     //json[item]为值  
  4. }</strong> 

这种模式十分有用,比如,在实际的WEB应用中,对一个页面元素需要设置一些属性,这些属性是事先不知道的,比如:

  1. <strong>var style = {  
  2.     border:"1px solid #ccc",  
  3.     color:"blue" 
  4. };</strong> 

然后,我们给一个DOM元素动态的添加这些属性:

  1. <strong>for(var item in style){  
  2.     //使用jQuery的选择器  
  3.     $("div#element").css(item, style[item]);  
  4. }</strong> 

当然,jQuery有更好的办法来做这样一件事,这里只是举例子,应该注意的是,我们在给$("div#element")添加属性的时候,我们对style的结构是不清楚的。

另外比如我们需要收集一些用户的自定义设置,也可以通过公开一个JSON对象,用户将需要设置的内容填入这个JSON,然后我们的程序对其进行处理。

  1. <strong>function customize(options){  
  2.     this.settings = $.extend(default, options);  
  3. }</strong> 

原文:http://abruzzi.iteye.com/blog/641532

【系列文章】

JavaScript内核之基本概念

JavaScript概述

精彩图集

赞助商链接