从php服务器读取json
Read json from php server
我想使用类似的javascript(而不是jquery)从php服务器读取json
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
json = xmlhttp.responseText;
JSON.parse(json, function (key, val) {
alert(key + '-'+ val);
});
}
}
在php文件中我做
$data = array();
$data['id'] = '1';
$data['name'] = '2';
print json_encode($data);
但输出是
id-1
name-2
-[object Object] // why??
如何解决这一问题,感谢
如果您使用的是普通的javascript,您希望循环遍历对象的属性,您可以用for in
语句在javascript中执行此操作。
<script>
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
alert(xmlhttp.responseText);
var data = JSON.parse(xmlhttp.responseText);
for(key in data)
{
alert(key + ' - '+ data[key]); //outputs key and value
}
}
}
xmlhttp.open("GET","sample.php",true); //Say my php file name is sample.php
xmlhttp.send();
</script>
来自关于JSON.parse
:的MDN文档
reviver最终使用空字符串和最顶端的值进行调用,以允许转换最顶端的数值。
解析{"id":"1","name":"2"}
将生成一个JavaScript对象。因此,在reviver函数的最后一次调用中,key
是空字符串,val
是生成的对象
任何对象的默认字符串表示形式都是[object Object]
,所以您得到的输出并不奇怪。
这里有一个更简单的例子:
// object vv
alert('Object string representation: ' + {});
如果要立即转换解析后的数据,通常只使用reviver函数。你可以做:
var obj = JSON.parse(json);
然后对对象进行迭代或直接访问其属性。查看访问/处理(嵌套)对象、数组或JSON以获取更多信息。
相关文章:
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- 正在读取JSON,数据未显示
- 使用jquery读取Json数据
- 如何使用jquery ajax和jsonp在您自己的域上读取json数据
- 没有根和跨域,无法使JSON正确读取
- 如何在php中读取没有任何键的JSON数组
- JQuery:从 JSON 读取值
- 嵌套的json读取
- 如何在从json读取的表中嵌套表
- 从 json 读取值
- 使用 JSON 读取文件
- 如何在javascript中从json读取数据数组
- 使用Javascript将本地JSON读取为HTML
- 如何在html中使用json读取php数据
- 使用getJSON从多级JSON读取到Google Chart
- 从HTML5 localstorage json读取,在highcharts-ng中不识别
- 使用Json读取Json字符串导致错误“不是Json数组”
- 在JS中将JSON读取到变量时出错
- 无法使用java脚本从Json读取键/值
- 向JSON读取对象添加方法