输出php json数据
问题描述:
我从我的数据库中收到旧邮件时遇到了一个小问题。使用通常console.log(data.message);
因为这回来不确定,我不能利用这些信息,但是当我使用console.log(data);
输出php json数据
[{"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,消息和时间,以便我可以将每个消息附加到我的聊天记录中,但是我可能会停留在输出信息上。
答
看起来您的回复包含在数组[]
中。
假定你的膏代表,你应该能够得到在你的JS,你会想起来循环要与
data[i].message
和
data[i].time.sec
等
数据到data.length来检索每个消息。
编辑:看起来你没有在收到它后解析字符串。请尝试以下
var parsedData;
if(JSON && JSON.parse) {
parsedData = JSON.parse(data);
}
else {
parsedData = eval(data);
}
alert(parsedData[0].message);
我还没有得到任何运气努力,我不知道如何删除,因为我收集PHP的信息,我添加上述 – jamcoupe 2012-02-10 00:17:06
@jamcoupe对不起PHP的方式包装阵列删除阵列不是一个好的选择,我只是重新读你的问题。答案在这一点上更新。 – tomfumb 2012-02-10 00:22:07
@jamcoupe你实际上是反序列化文本输出,当你在JS中接收它?你粘贴的输出和我测试'console.log('[{“message”:“hello”}]')'是一样的结构 - 这只是纯文本,在用作对象之前需要解析 – tomfumb 2012-02-10 00:27:02