我有
PHP输出JSON多维数组,如下所示:
{"rates":[{"meter":"30","rate":"0.15060","ppd":"10.000"}]}
但是,在尝试在JavaSCript端解码时,我一直遇到错误.
Uncaught TypeError: Cannot read property 'length' of null
以下是jQuery方面的代码:
success: function (result) { console.log(result); $.each($.parseJSON(result),function (item,value) { if (item == "rates") { $.each($.parseJSON(value),function (i,object) { console.log(i + "=" + object); }); }
第一个控制台日志给了我在顶部提到的输出,但由于某种原因,我无法像我想的那样访问数组.
任何帮助是极大的赞赏 :)
解决方法
您不需要再次在值上调用parseJSON.它已经是一个对象了
var result='{"rates":[{"meter":"30","ppd":"10.000"}]}'; console.log(result); $.each($.parseJSON(result),value) { if (item == "rates") { $.each(value,object) { $.each(object,function (subI,subObject) { console.log(subI + "=" + subObject); }); }); } });
此外,如果你想知道错误正在发生,因为你试图在一个对象上调用parseJSON而parseJSON需要一个字符串,所以它返回null给每个函数,然后尝试根据null.length做一个for循环.