JSON

ajax解析json报错

字号+ 作者:H5之家 来源:H5之家 2015-11-24 18:57 我要评论( )

ajax解析json报错

我写了一个定时从数据库取数据,ajax刷新页面的程序。服务器端用的php访问数据库获得数据,前端用javascript解析json数据,使用eval函数,但这句话总是报错。编程新手,求各位大神指教!谢谢!

服务器端程序:
header("Content-type:text/html; charset=gb2312"); //获取全部实时数据 $realTimeData=new realTimeData(); $DataArray=array(); $count=0; $result=$realTimeData->getNewData(""); while(($res=$result->fetch(PDO::FETCH_ASSOC))!=null) { $DataArray[$count]=array(); $realTimeData->fetchResult($res); array_push($DataArray[$count],$realTimeData->m_observationCode); array_push($DataArray[$count],$realTimeData->m_observationValue); $count=$count+1; } echo json_encode($DataArray);    //输出json

调试PHP代码输出:[["observation00000","30"],["observation00001","26"],["observation00002","25"]]

前端ajax的回调函数:
//回调函数: function writeData() { if(xmlhttp.readyState==4) { isRefreshing=false; hiddenLoading(); //将结果遍历写入页面 var r=xmlhttp.responseText; var result=eval("("+r+")");   //将JSON文本转换为javascript对象,这句话报错 for(var key in result) { document.getElementById(key).innerHTML=result[key]; } } }

前端页面:
    <span>测点1:</span>     <span id="observation00000"></span></br>     <span>测点2:</span>     <span id="observation00001"></span></br>     <span>测点3:</span>     <span id="observation00002"></span></br>


回复讨论(解决方案)

你alert下看看xmlhttp.responseText 得到的值 是不是不符合标准。

你alert下看看xmlhttp.responseText 得到的值 是不是不符合标准。



谢谢你~
xmlhttp,responseText得到的值是:
[["observation00000","30"],["observation00001","26"],["observation00002","25"]]
请问这个是标准的JSON格式吗?


你alert下看看xmlhttp.responseText 得到的值 是不是不符合标准。



谢谢你~
xmlhttp,responseText得到的值是:
[["observation00000","30"],["observation00001","26"],["observation00002","25"]]
请问这个是标准的JSON格式吗?


数组,就你贴出来的这个eval不会报错

document.getElementById(key).innerHTML=result[key];

报错的应该是这句,for(var key in result)遍历key是数组下标,就是0,1,2,你没有这种形式的dom对象

if(document.getElementById(result[key][0]))//最好判断dom对象是否存在,不存在会报错   document.getElementById(result[key][0]).innerHTML=result[key][1];//应该这样

[["observation00000","30"],["observation00001","26"],["observation00002","25"]]
只是个2维数组。
JSON格式应该是这样
[{"observation00000":"30"},{"observation00001":"26"}]

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
网友点评