zoukankan      html  css  js  c++  java
  • flex 遍历Object或者JSON对象内容的实现代码

    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对象操作

     简单的示例: 
    1var 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>"; 
    } 
    
    2var 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(); 
    } 
  • 相关阅读:
    无法加载模块 TP3.2
    always_populate_raw_post_data
    关于(void**)及其相关的理解
    面向对象设计原则
    数据对齐总结
    C++ POD类型
    do..while(false)的用法总结
    c++为什么定义了析构函数的类的operator new[]传入的参数会多4字节?
    C++ new new[]详解
    【转】C内存操作函数
  • 原文地址:https://www.cnblogs.com/coolsundy/p/5623886.html
Copyright © 2011-2022 走看看