json解析问题,json的的key是循环中获取的,进一步如何获取json?

var jsonObj={"kuaile":[{"sdf":"sdftest","ddd":"sddds"},{"sdf":"sddd"}],"sdfdd":"sdfdd","sdfdddd":[{"sdfdd":"sdfd"}]};

var kk="[kuaile][0][sdf]";
//kk是从一个函数中获取的
//如何获取jsonObj的值中的“sdftest”
//jsonObj+kk这种格式不正确

也就是解析字符串kk,得到各层的key的名字或索引,然后json对象一层层读取下去。

var kk=jsonObj.kuaile[0].sdf; 这样得到的值就是sdftest了


    var jsonObj = { "kuaile": [{ "sdf": "sdftest", "ddd": "sddds" }, { "sdf": "sddd" }], "sdfdd": "sdfdd", "sdfdddd": [{ "sdfdd": "sdfd" }] };
    var kk = "[kuaile][0][sdf]";//你的格式有错,字符串件名称应该返回["kuaile"][0]["sdf"]这种,需要用下面的代码处理下
    kk = kk.replace(/\[([^\]]+)\]/g, function ($0, $1) { alert($1); if (/^\s*\d\s*$/i.test($1)) return '['+$1+']'; return '["'+$1+'"]' });

    var keyValue = eval('jsonObj' + kk);
    alert(keyValue)

一层一层读 主要是理解json数据的格式 也不知道 你是怎么构建json的 json格式类似于键值对

不知道你到底是不是需要获取sdftest的值,如果是的话,这个链接可以帮助你:http://blog.csdn.net/xuanzhangran/article/details/60866665

var ary=kk.match(/([^][]+)(?=])/g);
var vl=jsonObj;
for(var i=0;i<ary.length;i++){
vl=vl[ary[i]];
}
alert(vl);

alert(jsonObj['kuaile'][0]['sdf'])