遍历JSON键值对

JSON既然是键值对应该可以像.net里的Dictionary一样可以遍历才对。试试看:
     // 递归遍历JSON所有键值
     function  recurJson(json) 
    { 
        
for ( var  i  in  json){         
            document.write(i
+ " : " + json[i] + "  <br> " );        
            
if ( typeof  json[i] == " object " ){ 
                recurJson(json[i]); 
            } 
        } 
    }

  

  var     dd = { " a " : " =a " , " b " : " =b " , " c " : " =c " , " d " :{ " d1 " : " =d1 " , " d2 " : " =d2 " }};
    dd.a
= " =a2 " ;
    recurJson(dd);

 输出:
a:=a2
b:=b
c:=c
d:[object Object]
d1:=d1
d2:=d2  

  var  record = new  Ext.data.Record({ " a " : " =a " , " b " : " =b " , " c " : " =c " , " d " :{ " d1 " : " =d1 " , " d2 " : " =d2 " }});
    
// record.set("a","a=a");//修改键值
     // Ext.Msg.alert("提示", record.get("d").d1);//获取键值    
     // recurJson(record.data);//遍历Record的数据    
    recurJson(record);     // 遍历Record的配置项,配置项本身就是JSON格式的

输出:
isModified:function(A){return this.modified&&this.modified.hasOwnProperty(A)}
copy:function(A){return new this.constructor(Ext.apply({},this.data),A||this.id)}
clearError:function(){this.error=null}
hasError:function(){return this.error!=null}
getChanges:function(){var A=this.modified,B={};for(var C in A){if(A.hasOwnProperty(C)){B[C]=this.data[C]}}return B}
commit:function(A){this.dirty=false;delete this.modified;this.editing=false;if(this.store&&A!==true){this.store.afterCommit(this)}}
reject:function(B){var A=this.modified;for(var C in A){if(typeof A[C]!="function"){this.data[C]=A[C]}}this.dirty=false;delete this.modified;this.editing=false;if(this.store&&B!==true){this.store.afterReject(this)}}
endEdit:function(){this.editing=false;if(this.dirty&&this.store){this.store.afterEdit(this)}}
cancelEdit:function(){this.editing=false;delete this.modified}
beginEdit:function(){this.editing=true;this.modified={}}
get:function(A){return this.data[A]}
set:function(A,B){if(String(this.data[A])==String(B)){return }this.dirty=true;if(!this.modified){this.modified={}}if(typeof this.modified[A]=="undefined"){this.modified[A]=this.data[A]}this.data[A]=B;if(!this.editing&&this.store){this.store.afterEdit(this)}}
join:function(A){this.store=A}
modified:null
error:null
editing:false
dirty:false
id:1001
data:[object Object]
a:=a
b:=b
c:=c
d:[object Object]
d1:=d1
d2:=d2
综合以上:定义一个JSON类:

转载于:https://www.cnblogs.com/jdmei520/archive/2009/09/22/1571603.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值