这是从服务器传过来json 数据,用js怎么解析啊 [{'id':'1','message':'HEHE','sendtime':'2013-07-20 09:46:00'},{'id':'2','message':'大家好,这是测试数据......','sendtime':'2013-07-20 09:47:17'},{'id':'3','message':'我看啊 ,这个聊天工具很好用的啊','sendtime':'2013-07-20 09:47:46'},{'id':'13','message':'地对地导弹','sendtime':'2013-07-20 13:34:01'}]
我是这样弄的: var result=eval('('+data+')');
alert(result.toJSONString());
其中的data就是上面的json数据 ,可是怎么打印不出来啊 ,第一次弄,不知道怎么弄,帮个忙JSONJavaScript
我是这样弄的: var result=eval('('+data+')');
alert(result.toJSONString());
其中的data就是上面的json数据 ,可是怎么打印不出来啊 ,第一次弄,不知道怎么弄,帮个忙JSONJavaScript
解决方案 »
- 事件或方法的调用
- 求解一段特殊的隔行换色代码
- 怎样用javascript打开特大分辨率的IE窗口
- asp.net 页面单独引用的js文件不能有<%%>?
- 招聘熟悉HTML,DHTML,JavaScript等客户端脚本的人才!
- 用parent.document.getElementById("ID").innerHTML会碰到 拒绝访问
- 如何将一个例如"2004-09-13 23:59"的字符串转换为一个Date对象?
- 如何实现按向上箭头时,得到按shift+tab的效果(向上的focus)?看似简单的问题,就是无法实现,苦恼ing...
- 能不能用onclick打开窗口地址拦传递参数啊??
- javascript中有个层的概念
- 关于火狐的一些问题,求大神解答
- 关于js中NaN的问题
header("Content-Type:text/html;charset=utf-8");
header("Cache-Control:no-cache");
session_start();
require_once '../Models/chatlogModel.php';
$lander=unserialize($_SESSION['lander']);
$friendid=$_POST['friendid'];
//file_put_contents("g:/mylog.log", $friendid."\r\n",FILE_APPEND);
$accepterid=$lander['id'];
$chatlogmodel=new chatlogModel();
$result=$chatlogmodel->select_chatlog($friendid, $accepterid);
if(!$result){
$data=null;
}else {
$data="[";
//json 数据格式
//[
// {"城市":"北京","面积":16800,"人口":1600},
// {"城市":"上海","面积":6400,"人口":1800}
//]
for($i=0;$i<count($result);$i++){
if($i==(count($result)-1)){
$data.="{'id':'".$result[$i]['id']."','message':'".$result[$i]['message']."','sendtime':'".$result[$i]['sendtime']."'}";
}else {
$data.="{'id':'".$result[$i]['id']."','message':'".$result[$i]['message']."','sendtime':'".$result[$i]['sendtime']."'},";
}
}
$data.="]";
}
file_put_contents("g:/mylog.log", $data."\r\n\r\n\r\n\r\n",FILE_APPEND);
//exit();
echo $data;这是js文件代码$(function(){
//每3秒就调用一次
window.setInterval(function(){
var friendid=$('#friendid').val();
$.post(
"../Controllers/GetMessageController.php",
{"friendid":friendid},
function(data){
//处理函数
var result=eval('('+data+')');//?????????????????
alert(result);
},
"json"
);
},5000) ;
})这是打印在mylog.log的数据[{'id':'1','message':'HEHE','sendtime':'2013-07-20 09:46:00'},{'id':'2','message':'大家好,这是测试数据......','sendtime':'2013-07-20 09:47:17'},{'id':'3','message':'我看啊 ,这个聊天工具很好用的啊','sendtime':'2013-07-20 09:47:46'},{'id':'13','message':'地对地导弹','sendtime':'2013-07-20 13:34:01'}]不知道为什么,alert();就是打印不出来,求解释
不用你这么麻烦呀,php支持数组转 json_encode前台:
你服务器响应是一个json数组,需要双层for循环
<script type="text/javascript">
var data=[{'id':'1','message':'HEHE','sendtime':'2013-07-20 09:46:00'},{'id':'2','message':'大家好,这是测试数据......','sendtime':'2013-07-20 09:47:17'},{'id':'3','message':'我看啊 ,这个聊天工具很好用的啊','sendtime':'2013-07-20 09:47:46'},{'id':'13','message':'地对地导弹','sendtime':'2013-07-20 13:34:01'}];for(var d in data){
for( var j in data[d]){
alert(j+"="+data[d][j]);
}
}
</script>
var arr = [];
var fmt = function(s) {
if (typeof s == 'object' && s != null) return JsonToString(s);
return /^(string|number)$/.test(typeof s) ? "'" + s + "'" : s;
}
for (var i in o)
arr.push("'" + i + "':" + fmt(o[i]));
return '{' + arr.join(',') + '}';
} data = "[{'id':'1','message':'HEHE','sendtime':'2013-07-20 09:46:00'},{'id':'2','message':'大家好,这是测试数据......','sendtime':'2013-07-20 09:47:17'},{'id':'3','message':'我看啊 ,这个聊天工具很好用的啊','sendtime':'2013-07-20 09:47:46'},{'id':'13','message':'地对地导弹','sendtime':'2013-07-20 13:34:01'}]";
result=eval('('+data+')');
alert(JsonToString(result));我第一次弄这个,是从一个中博客看到的 ,我就这样用了,可是不对,没有toJSONString();直接alert也是没有,我不知道怎么弄啊 ,可不可以给出一个例子啊,这个