Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 解析后的元素显示为未定义_Javascript_Jquery_Json_Parsing - Fatal编程技术网

Javascript 解析后的元素显示为未定义

Javascript 解析后的元素显示为未定义,javascript,jquery,json,parsing,Javascript,Jquery,Json,Parsing,我正在尝试解析以下JSON: { "customers": [ { "name":"joe" , "cars":[ {"name":"honda","visits":[ {"date":"01/30/14","Id":"201"}, {"date":"01/30/14","Id":"201"}, {"date":"02/12/14","Id":"109"} ]}, {"name":"Nissan","vis

我正在尝试解析以下JSON:

{
"customers": [
{ "name":"joe" , "cars":[
    {"name":"honda","visits":[
        {"date":"01/30/14","Id":"201"},
        {"date":"01/30/14","Id":"201"},
        {"date":"02/12/14","Id":"109"}
        ]},
         {"name":"Nissan","visits":[
        {"date":"01/30/14","Id":"201"},
        {"date":"02/12/14","Id":"109"}
        ]}
    ]},

{ "name":"bob" , "cars":[
    {"name":"escalade","visits":[
         {"date":"01/05/14","Id":"301"},
        {"date":"01/18/14","Id":"551"}
        ]},
         {"name":"corvette","visits":[
         {"date":"01/05/14","Id":"301"},
        {"date":"01/18/14","Id":"551"}
        ]}
    ]} 
]
}
使用以下jQuery脚本:

$("document").ready(function(){

        $.getJSON("data1.json", function(json) {
    console.log(json); // this will show the info it in firebug console

            $.each(json.customers,function(customer){
        console.log(customer.name);
        console.log(customer.cars);     
    });
});

});

JSON在控制台中出现,但我试图解析的字段显示为未定义。有人能告诉我我做错了什么吗?

我认为这里的问题是您的使用,您的回调函数将接收索引作为第一个参数,值作为第二个参数,看起来您希望第一个参数是值。因此,在当前代码中,customer将是一个索引(
0
1
,等等),而不是JSON中的对象

尝试更改您的
$。每次调用以下内容:

$.each(json.customers, function(index, customer) {
    console.log(customer.name);
    console.log(customer.cars);     
});

customer
是数组中对象的索引。对象作为第二个参数传递。请参阅文档:。将
console.log(customer)
放入回调中有助于调试问题。
console.log(this.name)
console.log(this.cars)