javascript解析多维数组生成的json

PHP多维数组生成的json 如何解析
{[a:a1,b:{[ba:ba,bb,bb]}],[A:A1,B:B1]}
大概就是这样,key未知!
不是生成这个 而是类似的 多维数组生成的 要怎么处理?
[{"uid":1,"uname":"York","tag":{"2":"beijing","6":"chaoyang"}},{"uid":4,"uname":"Lee","tag":{"2":"beijing","8":"haidian"}}]

这是Ajax 取回的数据(随机用户列表)
我要怎么输出啊?
不能想PHP数组那样用for循环的啊?!?

ajax取回数据,把响应的json格式的字符串转换成 json对象(具体怎么转有很多方法,如果不清楚可以再问).具体怎么得到你想要的数据,就拿你这个
[{"uid":1,"uname":"York","tag":{"2":"beijing","6":"chaoyang"}},{"uid":4,"uname":"Lee","tag":{"2":"beijing","8":"haidian"}}]数据来讲吧.
这个json字符串转换成的json对象完全可以当成一个一维数组来处理(这个不是多维哦~),它里面有2个对象,就这样.
想明白这个取数据就简单了吧.
比如得到的字符串为data ,要得到一个对象的uname,js可以这么写
var json_obj = eval(data);
var uname_1 = json_obj[0].uname;
OK,uname_1就是结果。
应该明白了吧。
楼下讲的根本不对.json的构建有2种基本结构,简单的讲,大括号 {} 括起来的是普通对象,中括号括 [] 括起来的是数组.两种结构可以组合使用.就像上面那个例子.
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-04-13
按javascript的语法存取和解析。你例子中有明显错误,js的数组和对象不分,php也不可能生成这样的json。
按javascript的语法存取和解析。学会js,按js的规矩办。

php下可用$a=json_decode()解码这个串,然后按js的规矩
echo $a[0]['uname'];显示York
echo $a[0]['tag']['2'];显示北京
可以用foreach逐层遍历,.和PHP的数组同样的。本回答被网友采纳
第2个回答  2013-04-13
你的json格式生成有问题,JSON格式一般是{a:111,b:222,c:{x:333,y:545}},而不是[ba:ba,bb,bb]这样的,你再仔细检查一下。
第3个回答  2013-04-14
试试这个?直接通过key就可以索引了,不知道你说的数组是什么意思

for(var key in jsons){

 if(jsons.hasOwnProperty(key)){

  alert("key:" + key + ",value:" + jsons[key]);

 }
}