【发布时间】:2012-12-10 20:36:41
【问题描述】:
我正在尝试解析 JSON 数据结构,但我认为应该是数据返回未定义。
这是我正在使用的 jQuery:
....
var messages = data.messages;
$.each(messages, function(i, val) {
var user = messages[i];
//console.log(user);
console.log(user['msg']);
});
PHP 数据结构如下所示:
...
$message_info = array();
$message_info[$row['username']]['prvt'] = 1;
$message_info[$row['username']]['msg'] = stripslashes($row['message']);
$message_info[$row['username']]['ts'] = $row['timestamp'];
...
$message_list[] = $message_info;
...
$res->messages = $message_list;
echo json_encode($res);
如果我将用户转储到控制台,输出如下所示:Object
{john: Object}
john: Object
msg: "test msg"
prvt: 0
ts: "2012-12-10 09:16:13"
这是控制台中数据的样子:
Object {success: true, lastid: "60", messages: Array[15]}
lastid: "60"
messages: Array[15]
0: Object
john: Object
msg: "test msg"
prvt: 0
ts: "2012-12-10 09:16:13"
1: Object
john2: Object
msg: "test msg2"
prvt: 1
ts: "2012-12-10 09:18:13"
...
知道为什么我无法访问和检索 msg 的内容吗?
【问题讨论】:
-
试试
echo json_encode($message_list,JSON_FORCE_OBJECT); -
你确定不是
user.john.msg? -
如果上述方法不起作用,则在您获得
data变量后立即使用console.log(data)可能会有所帮助。另请注意,您不需要user = messages[i],因为val参数已经设置为messages[i]。 -
您是否使用 AJAX 获取此 JSON?您是否尝试在 AJAX 回调完成之前访问数据?
-
@nnnnnn 刚刚添加了数据的输出
标签: php javascript jquery json