财神Childe 2017-07-05 14:03 采纳率: 0%
浏览 690

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

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

var kk="[kuaile][0][sdf]";

//kk是从一个函数中获取的

//如何获取jsonObj的值中的“sdf”

//jsonObj+kk这种格式不正确

  • 写回答

1条回答 默认 最新

  • 斯洛文尼亚旅游 2017-07-06 01:00
    关注

    eval下就行了,但是你的kk这个json path路径为件名称的时候要改为字符串,不能直接[kuaile],要["kuaile"]

    
        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)
    
    评论

报告相同问题?