我已经看过类似的帖子,但我无法正确使用这段代码。
var obj2 = JSON.parse('{"venue_data":
{"venue_id":"25",
"description":"Space Cafe",
"venue_type": [
{"type_description":"Cafe"},
{"type_description":"Free Wifi"},
{"type_description":"Hangout"}
]
}
}
');
//next line doesn't work :(
alert(obj2.venue_data[0].venue_id);
//either do the next two :(
alert(obj2.venue_data[0].venue_type[0]);
}
alert(obj2.venue_data[0].venue_type[1]);
我尝试了不同的东西,但现在我只是在猜测。
ps ...没有数据中的数组,它可以正常工作。
欢迎任何帮助。
谢谢,
奈德
答案 0 :(得分:5)
venue_data
是一个对象,而不是一个数组。您无法使用[0]
选择器引用它。
相反,只需使用文字:
alert(obj2.venue_data.venue_id);
答案 1 :(得分:1)
是的,因为venue_data
不是array
,它只是一个对象。
像console.log(obj2.venue_data.venue_id);
相反,如果它本来是
var obj2 = JSON.parse('{"venue_data": ' +
'[{"venue_id":"25",' +
'"description":"Space Cafe",' +
'"venue_type": [' +
'{"type_description":"Cafe"},' +
'{"type_description":"Free Wifi"},' +
'{"type_description":"Hangout"}' +
']' +
'}]' +
'}');
然后您应该在[0]
venue_data
答案 2 :(得分:1)
您的代码中似乎存在一些类型错误,
alert(obj2.venue_data[0].venue_id);
无效,因为
obj2.venue_data
不是数组。
你走了:
var obj2 =
{
"venue_data":
{
"venue_id": "25",
"description": "Space Cafe",
"venue_type": [
{ "type_description": "Cafe" },
{ "type_description": "Free Wifi" },
{ "type_description": "Hangout" }
]
}
};
alert(obj2.venue_data.venue_id);
alert(obj2.venue_data.venue_type[0]);
alert(obj2.venue_data.venue_type[1]);
var obj2witharray = {
"venue_data":[
{
"venue_id": "25",
"description": "Space Cafe",
"venue_type": [
{ "type_description": "Cafe" },
{ "type_description": "Free Wifi" },
{ "type_description": "Hangout" }
]
},{
"venue_id": "26",
"description": "Universe Cafe",
"venue_type": [
{ "type_description": "Cafe" },
{ "type_description": "Free Wifi" },
{ "type_description": "Hangout" }
]
}, {
"venue_id": "27",
"description": "Earth Cafe",
"venue_type": [
{ "type_description": "Cafe" },
{ "type_description": "Free Wifi" },
{ "type_description": "Hangout" }
]
}
]
}
答案 3 :(得分:0)
非常感谢Guys两个答案。 我的脚本有两个问题: 1.场地数据没有正确定义,我应该[括号如此显示场地阵列。 2.我没有在单个字符串中创建json对象,并且应该连接字符串。
再次感谢很多。 奈德