当我从数据库中收到旧邮件时,我遇到了一个小问题。我不能使用通常的console.log(data.message);
来使用这些信息,因为这是未定义的,但是当我使用console.log(data);
时
[{"message":"Hello","time":{"sec":1328831312,"usec":699000},"user":"4f326ef17edae18d11000000"},{"message":"Heyyy","time":{"sec":1328831324,"usec":48000},"user":"4f33a3db7edae17736000000"},{"message":"afasfasd","time":{"sec":1328831966,"usec":960000},"user":"4f33a3db7edae17736000000"},{"message":"asdfasdfasdf","time":{"sec":1328831968,"usec":283000},"user":"4f33a3db7edae17736000000"},{"message":"old message","time":{"sec":1328831969,"usec":234000},"user":"4f33a3db7edae17736000000"}]
我在我的数据库中搜索两个用户之间的消息,然后循环遍历这样的数据
$messages = array();
for($i=0; $i<count($cursor['messages']); $i++){
$object = array('message'=>$cursor['messages'][$i]['message'],
'time'=>$cursor['messages'][$i]['time'],
'user'=>$cursor['messages'][$i]['user']);
$messages[] = $object;
}
echo json_encode($messages)
我希望能够获取消息发送的用户ID,消息和时间,以便我可以将每个消息附加到聊天记录中,但我可以坚持输出信息。
答案 0 :(得分:2)
看起来您的回复包含在数组[]
中。
假设您的粘贴具有代表性,您应该能够获得所需的数据
data[i].message
和
data[i].time.sec
等
在你的JS中,你需要循环到data.length来检索每条消息。
编辑:看起来你收到后没有解析字符串。请尝试以下
var parsedData;
if(JSON && JSON.parse) {
parsedData = JSON.parse(data);
}
else {
parsedData = eval(data);
}
alert(parsedData[0].message);