private function init():void { //新建对象 var obj:Object = new Object(); //增加key-value obj["name"] = "liguoliang"; //格式: Object[key] = value obj["age"] = 25; //注意: key必须为String, value可以为任意类型 //使用for..in...遍历所有的key - value for(var k:String in obj) { trace("Key: " + k + " - value: " + obj[k]); } //使用for each..in遍历HashMap for each( var v:* in obj) { trace("value: " + v); } //删除一个key-value delete obj["age"]; //使用for..in...遍历所有的key - value for(var k:String in obj) { trace("Key: " + k + " - value: " + obj[k]); } }
JSON对象操作
简单的示例: 1。var jsonObj={person1:{name:"jack",age:"12"}, person2:{name:"kate",age:"23"}, person3:{name:"jim",age:"14"} }; 调用JSON对象的属性, 1)jsonObj.person1.name 2)jsonObj["person1"].name 可以通过for循环的方式调用JSON对象中的每一个子对象 for(var p in jsonStr){ //alert(typeof p); alert(p);//返回的是string str+=jsonObj[p].name+","+jsonObj[p].age+"<br>"; } 2。var jsonObj2={persons:[{name:"jordan",sex:"m",age:"40"}, {name:"bryant",sex:"m",age:"28"}, {name:"McGrady",sex:"m",age:"27"} ]}; 调用JSON对象的属性, 1)jsonObj2.persons[0].name; 2)for循环调用方法, var persons=jsonObj2.persons;//返回的值是一个数组object for(var i=0;i<persons.length;i++){ cur_person=persons; str+=cur_person.name+"'sex is "+cur_person.sex+" and age is "+cur_person.age+"<br>"; } 向jsonObj2的persons数组中插入,删除,更新 数据, 此处,可以利用javascript的Array对象的方法进行操作,如 var person={name:"yaoMing",sex:"m",age:"26"}; jsonObj2.persons.push(person);//数组最后加一条记录 jsonObj2.persons.pop();//删除最后一项 jsonObj2.persons.shift();//删除第一项 jsonObj2.persons.unshift(person);//数组最前面加一条记录 只要适合Javascript的方法都是可以用在JSON对象的数组中的!所以还有另外的方法splice( )进行crud操作! //删除 jsonObj2.persons.splice(0,1);//开始位置,删除个数 //替换不删除 var self={name:"tom",sex:"m",age:"24"}; var brother={name:"Mike",sex:"m",age:"29"}; jsonObj2.persons.splice(1,0,self,brother);//开始位置,删除个数,插入对象 //替换并删除 var self={name:"tom",sex:"m",age:"24"}; var brother={name:"Mike",sex:"m",age:"29"}; jsonObj2.persons.splice(0,1,self,brother);//开始位置,删除个数,插入对象 二,知道了在Javascript中JSON的基本操作,但这还不能与后台进行交互,在着之前还需要把它转化为 String! 方法有两个,1)引入一个方法 : function obj2str(o){ var r = []; if(typeof o =="string") return """+o.replace(/(['"\])/g,"\$1").replace(/( )/g,"\n").replace(/( )/g,"\r").replace(/( )/g,"\t")+"""; if(typeof o == "object"){ if(!o.sort){ r[0]="{" for(var i in o){ r[r.length]=i; r[r.length]=":"; r[r.length]=obj2str(o); r[r.length]=","; } if(!!document.all && !/^ ?functions*toString()s*{ ?s*[native code] ?s*} ?s*$/.test(o.toString)){ r[r.length]="toString:"+o.toString.toString(); r[r.length]=","; } r[r.length-1]="}" }else{ r[0]="[" for(var i =0;i<o.length;i++){ r[r.length]=obj2str(o); r[r.length]=","; } r[r.length-1]="]" } return r.join(""); } return o.toString(); }