Php 用jquery解析JSON
我无法使用jquery的get JSOn函数解析JSOn。请帮忙。以下是html代码:Php 用jquery解析JSON,php,jquery,json,Php,Jquery,Json,我无法使用jquery的get JSOn函数解析JSOn。请帮忙。以下是html代码: function getList() { $.getJSON("http://localhost/webservice/list.php", function(data){ for (var i=0, len=data.length; i < len; i++) { alert(data[i]); } }); 编辑:有人提到我不应该在数据上循环,而应该在
function getList()
{
$.getJSON("http://localhost/webservice/list.php", function(data){
for (var i=0, len=data.length; i < len; i++)
{
alert(data[i]);
}
});
编辑:有人提到我不应该在数据上循环,而应该在数据上循环。我不熟悉JSON:
for (var i=0, len=data.promos.length; i < len; i++)
{
alert(data.promos[i]);
}
for(变量i=0,len=data.promos.length;i
数据
是一个对象,只有一个属性(promos
),而不是数组。你不能绕着它转。(您可以循环查看数据。促销活动)。尝试以下操作:
$.each(data.promo, function(key, value) {
console.log(value.id);
//and so on...
});
请注意,JSON数据的顶级属性名为promos
:
<html>
<head>
<script language="javascript"
type="text/javascript"
src="./jquery-1.10.2.min.js" ></script>
</head>
<body>
<script type="text/javascript">
function getList() {
$.getJSON( "http://localhost:8888/testbed/jsonProvider.php", function( data ){
// Use JavaScript's log facility to learn what's inside a variable
console.log( data );
var len = data.promos.length;
for ( var i=0; i < len; i++ ) {
alert( data.promos[i].promo.id );
}
});
}
getList();
</script>
</body>
</html>
您将json数据视为一个数组,即使顶层是一个对象。你应该在使用数据的地方使用data.promos。这个问题似乎离题了,因为这是提问者没有正确处理其特定数据结构的结果,而不是更普遍的相关问题,并且不包括错误消息或其他实际发生的情况的描述,而不是预期的结果。没有错误。什么都没有发生,也没有出现警告框。你可以发布你的list.php文件代码来提问吗?foreach比传统的for(blabla)简单多了。好吧,现在它可以循环了,但在我尝试获取任何值时显示未定义的值(例如你发布的id),谢谢你的回答。循环正在工作,但是当我尝试将id的值作为value.id(现在使用每个循环,每个promo都是一个值)时,我得到了未定义的值。您能告诉我可能是什么问题吗@quentin@AhmarAli:您正在使用数据[i].id
?它是data[i].promo.id
@minitech我正在使用这个$.each(data.promos,function(key,value){console.log(value.id);})@AhmarAli:console.log(value.promo.id)代码>
<html>
<head>
<script language="javascript"
type="text/javascript"
src="./jquery-1.10.2.min.js" ></script>
</head>
<body>
<script type="text/javascript">
function getList() {
$.getJSON( "http://localhost:8888/testbed/jsonProvider.php", function( data ){
// Use JavaScript's log facility to learn what's inside a variable
console.log( data );
var len = data.promos.length;
for ( var i=0; i < len; i++ ) {
alert( data.promos[i].promo.id );
}
});
}
getList();
</script>
</body>
</html>
<?php
header('Content-type: application/json');
?>
{
"promos":[
{"promo":{"id":"1","name":"MADINAT JUMEIRAH AL QASR","image":"","stars":"","highlights":""}},
{"promo":{"id":"2","name":"MADINAT JUMEIRAH DAR AL MASYAF","image":"","stars":"","highlights":""}},
{"promo":{"id":"3","name":"ATLANTIS THE PALM","image":"","stars":"","highlights":""}},
{"promo":{"id":"4","name":"JUMEIRAH ZABEEL SARAY 5*","image":"","stars":"","highlights":""}},
{"promo":{"id":"5","name":"HABTOOR GRAND BEACH RESORT & SPA","image":"","stars":"","highlights":""}},
{"promo":{"id":"6","name":"HILTON DUBAI JUMEIRAH RESORT","image":"","stars":"","highlights":""}}
]
}