Javascript jQuery解析JSON多维数组

Javascript jQuery解析JSON多维数组,javascript,jquery,arrays,json,multidimensional-array,Javascript,Jquery,Arrays,Json,Multidimensional Array,我让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);

我让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","rate":"0.15060","ppd":"10.000"}]}';
console.log(result);
$.each($.parseJSON(result), function (item, value) {
    if (item == "rates") {
        $.each(value, function (i, object) {
            $.each(object, function (subI, subObject) {
                console.log(subI + "=" + subObject);
            });
        });

    }
});

另外,如果您想知道发生了什么错误,因为您试图对一个对象调用parseJSON,而parseJSON需要一个字符串,因此它向每个函数返回null,然后该函数尝试基于null.length执行for循环,因为您只需要一个属性的内容,您不需要遍历所有属性,因此不需要嵌套循环。只需获取阵列并在其中循环:

$.each($.parseJSON(result).rates, function (i, object) {
  console.log(i + "=" + object);
});
如果您使用的是专门用于获取JSON的方法,或者如果在响应上正确设置了内容类型,那么您甚至不应该解析结果,在调用回调方法之前已经解析了结果:

$.each(result.rates, function (i, object) {
  console.log(i + "=" + object);
});

该程序显示如何读取json并将数据存储到文本框中

$(document).ready(function(){

$.getJSON("Test.json",function(data){

         $.each(data,function(key,value){
             alert(data[key].attrib1name);
             alert(data[key].attrib2name); 
             $('input').val(data[key].enterpriseName);
             activities=data[key].activities;
             console.log(value);
         });
     });    


});

我能发现一些问题,但它们不能解释错误。是第一个
$的回调。每个
都执行了吗?在第二个
parseJSON
命令中,您应该会得到一个错误,说
Uncaught SyntaxError:Unexpected token o
。。无法解释你的错误getting@FelixKling是的,第一个$。每个都被执行。但这并不能解释错误。编辑:奇怪的是,我得到了一个与OP不同的错误。这修复了错误,但它并没有提供我想要的。我现在得到了:“0=[object object]”@SeánMcCabe:这是因为您试图将对象转换为字符串。这一产出是预期的。对象的默认字符串表示形式是
[object object]
。你可以做
console.log(i,object)
,这是意料之中的事。这是一个对象数组。[]是一个包含1个对象{…}的数组,我刚刚更新了代码以包含另一个对象,每个对象都输出单独的值