【发布时间】:2013-06-10 17:13:34
【问题描述】:
我正在尝试从 JSON 关联数组中调用值。当我的对象被包裹在“[]”中时,我遇到了困难。例如:
var scifi = [
{
"Show":"TNG",
"Ship":"Enterprise",
"Captain":"Picard"
},
{
"Show":"BSG",
"Ship":"Galactica",
"Captain":"Adama"
},
{
"Show":"Firefly",
"Ship":"Serenity",
"Captain":"Reynolds"
}
]
例如,在我假设为了召唤阿达玛我会使用命令之前
scifi.Captain[1]
然而,这似乎完全失败了。任何建议表示赞赏。
编辑-----------
我认为部分问题可能出在我正在使用的 ajax 中。
$.ajax({
url: './php/scifishows.php',
type: 'POST',
//dataType: 'json',
data:
{
show: fav_show
},
success: function(output)
{
alert(output[1].Captain);
}
});
这是导致括号的 php 代码,它循环遍历 mysql 结果并将它们放在单个对象中。这当然是由上面的ajax调用的。
$all = array();
while( ($row = mysql_fetch_assoc($result)) ) {
$all[] = $row;
}
【问题讨论】:
-
while 循环结束后你从 print_r($all) 得到什么?
-
我在 php 中回应了这一点,而 ajax 什么也没回。所以我猜它在PHP的某个地方引起了错误。只是为了确保它不是 JS,我尝试使用 Richard 推荐的“scifi[1].Captain”格式调用对象以及调用整个对象的“scifi”格式。两种方法都没有产生任何结果。谢谢:)
-
想通了。理查德的回答是我需要的,我没有在 ajax 调用中指定 dataType: "json" 。对单引号和双引号敏感。
标签: jquery json object associative-array