php中数据使用json_encode后得到的json字串有两种形式,一种是对象,包含于{}中,一种是数组,包含于[]中,如何正确的遍历数据,提供一下方法参考:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>json格式对象和数组的不同处理方法</title>
<script src="jquery.js" type="text/javascript"></script>
</head>
<body>
<?php
//关联数组转json字串
$arr1 = array(
'c0'=>array("uid"=>1,"nickname"=>"csg1"),
'c1'=>array("uid"=>2,"nickname"=>"csg2"),
);
//索引数组转json字串
$arr2 = array(
array("uid"=>1,"nickname"=>"csg1"),
array("uid"=>2,"nickname"=>"csg2"),
);
?>
</div>
<script>
// 1、关联数组转json字符串后-对象形式
var json1 = '{"c0":{"uid":1,"nickname":"csg1"},"c1":{"uid":2,"nickname":"csg2"}}';
// 2、索引数组转json字符串后-数组形式
var json2 = '[{"uid":1,"nickname":"csg1"},{"uid":2,"nickname":"csg2"}]';
// eval转换json字符串为对象或数组
var arr1 = eval('('+json1+')');
var arr2 = eval('('+json2+')');
// jquery遍历对象
var s = '';
$.each(arr1,function(i,val){
s += val.nickname;
});
//alert(s);
// js遍历数组
var s = '';
for(var i=0;i<arr2.length;i++){
s += arr2[i].nickname+'-';
}
alert(s);
</script>
</body>
</html>