Javascript 解析后的元素显示为未定义
我正在尝试解析以下JSON: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
{
"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)
。