注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Copper peas ' Bolg

Keep On Moving...This Is My Life...

 
 
 

日志

 
 

【原】php json_encode函数返回不同json数据的操作  

2011-03-21 11:10:18|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

数组和对象操作有些不同,就是js数组如果有key值就变成对象了。

 

<!--
           //起因:php json_encode函数返回键值数组和纯数值数组是不同的。
          
     //键值数组 json返回json对象其中record是对象数据集
     var varsjsons={"0":"335","pid":335,"pagenum":1,"where":"335","funname":"DBsonlist","record":{"341":{"id":"341","0":"341","key":"hanhans","1":"hanhans","val":"root:123@127.0.0.1:3306","2":"root:123@127.0.0.1:3306","pid":"335","3":"335"},"key":{"id":"336","0":"336","key":"\人\员\信\息\数\据\库","1":"\人\员\信\息\数\据\库","val":"cwh:123@127.0.0.1:3306","2":"cwh:123@127.0.0.1:3306","pid":"335","3":"335"}},"maxpage":1,"totalrecord":"2","pagesize":10};
           //纯数值数组 json返回json对象其中record是数组数据集
           var varsjson={"0":"335","pid":335,"pagenum":1,"where":"335","funname":"DBsonlist","record":[{"id":"341","0":"341","key":"hanhans","1":"hanhans","val":"root:123@127.0.0.1:3306","2":"root:123@127.0.0.1:3306","pid":"335","3":"335"},{"id":"336","0":"336","key":"\人\员\信\息\数\据\库","1":"\人\员\信\息\数\据\库","val":"cwh:123@127.0.0.1:3306","2":"cwh:123@127.0.0.1:3306","pid":"335","3":"335"}],"maxpage":1,"totalrecord":"2","pagesize":10};
           var obj=varsjson.record;
     var objs=varsjsons.record;        
           //区别一:数组可以直接使用length函数计算长度,对象不能,length函数是靠索引来计算的,你数组了key值,破坏了默认索引,当然不行。
     //alert (obj.length);取的到
     //alert (objs.length);取不到的
           //区别二:取值不同[但同一级{}逗号的数据可以当作数组操作],对象使用.[]来取值,数组可以使用[]索引或者key值
           //alert ('<br>obj按对象:'+obj.0.id);//取不到的
     //alert ('<br>obj按下标:'+obj[0]['id']);//取的到
           //alert ('<br>obj按名称:'+obj['0']['id']);//取的到
     //alert ('<br>obj按下标名称:'+obj[0]['id']);//取的到
     //alert ('<br>obj按下标对象:'+obj[0].id);//取的到
           //对象返回的时候,如果key是字符串是字母非数字,则.可以取到,这点需要注意
     //alert ('<br>objs按对象:'+objs.key.id);//取的到
     //alert ('<br>objs按对象:'+objs.341.id);//取不到的
     //alert ('<br>objs按下标:'+objs[341]['id']);//取的到
           //alert ('<br>objs按名称:'+objs['341']['id']);//取的到
     //alert ('<br>obj按对象名称:'+obj.key.['id']);//取不到
     //alert ('<br>obj按下标对象:'+obj[341].id);//取不到
     //alert ('<br>obj按名称对象:'+obj['341'].id);//取不到
     //区别三 增删查 数组可以操作数组函数,对象不能
           //认清操作的是对象还是数组,有key值的都是对象
     //数组可以使用数组函数操作,对象使用.和delete来操作
     给objs[341]增加一个字段startus,值为data.mysqllback
     objs[341].startus=data.mysqllback;
     给objs增加一个对象元素,因为objs外围是个数组([ ]中间的{}他们关系是数组,{}中,的关系是json对象),使用数组函数,addval是个json对象
     var addval={"id":data.id,"0":data.id,"key":data.key,"1":data.key,"val":data.val,"2":data.val,"pid":data.pid,"3":data.pid};
           objs.unshift(addval);
    
     delete objs[341].startus//删除对象

 

 

var myObj = {'test' : {'key1' : 'value', 'key2': 'value'}}

delete myObj.test.key1;

var myObj = {'test' : {'key2': 'value'}}

<script lang ge=javascript>
/*
var arr = [];
    arr[0] = "George";
    arr[1] = "John";
    arr[2] = "Thomas";
    arr.push('abc',"dsa");
 document.write(arr);
 */
var pepole={"record":[{"id":"341","0":"341","key":"hanhans","1":"hanhans","val":"root:123@127.0.0.1:3306","2":"root:123@127.0.0.1:3306","pid":"335","3":"335"},{"id":"336","0":"336","key":"\人\员\信\息\数\据\库","1":"\人\员\信\息\数\据\库","val":"cwh:123@127.0.0.1:3306","2":"cwh:123@127.0.0.1:3306","pid":"335","3":"335"}]};
    pepole.record[0].ccc="kkk";
    document.write(pepole.record[0].id);
    document.write(pepole.record[0].key);
 document.write(pepole.record[0].ccc);
 //delete pepole.record[0].id;
 //document.write(pepole.record[0].id);


</script>

  评论这张
 
阅读(936)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018