Php 无法正确获取JSON数据
通过这样做,我得到了json的输出Php 无法正确获取JSON数据,php,jquery,Php,Jquery,通过这样做,我得到了json的输出 $.get('getDataPartySize.php', function(data) { alert(data); }); 这项研究的结果是: [object Object],[object Object],[object Object],[object Object],[object Object], [object Object],[object Object],[object Object],[object Object],[objec
$.get('getDataPartySize.php', function(data) {
alert(data);
});
这项研究的结果是:
[object Object],[object Object],[object Object],[object Object],[object Object],
[object Object],[object Object],[object Object],[object Object],[object Object],
[object Object],[object Object],[object Object],[object Object],[object Object],
[object Object],[object Object],[object Object],[object Object],[object Object],
[object Object],[object Object],[object Object],[object Object],[object Object],
[object Object],[object Object]
我试过像下面这样输出getDataPartySize.php,getDataPartySize.php也有这个headerContent类型:text/json
我正在使用jQuery。我不知道是什么问题
编辑:也尝试了这个,得到了相同的输出
$.getJSON("getDataPartySize.php",function(result){
alert(result);
}
指定数据类型
$.get('getDataPartySize.php', function(data) {
alert(data);
},'json');
或者手动解析json
$.get('getDataPartySize.php', function(data) {
var json = $.parseJSON(data);
alert(json);
//i would prefer
//console.log(json);
//because alert tries to convert the objects to strings as mentioned by @Rocket in comments
});
下面是指定数据类型的方法
$.get('getDataPartySize.php', function(data) {
alert(data);
},'json');
或者手动解析json
$.get('getDataPartySize.php', function(data) {
var json = $.parseJSON(data);
alert(json);
//i would prefer
//console.log(json);
//because alert tries to convert the objects to strings as mentioned by @Rocket in comments
});
这是您的JSON是正确的,您看到的是[object object],因为alert试图将对象转换为字符串。警报不是调试的最佳方式。您应该使用console.log,然后查看JS控制台 如果您使用console.log,您会发现它很好。尝试提醒数据[0].name,您将看到它工作正常 另外,您应该在$.get中将类型设置为“json”。jQuery将自动检测它是JSON,因为您有内容类型:text/JSON,但无论如何添加它都是一个好主意
$.get('getDataPartySize.php', function(data) {
console.log(data);
}, 'json');
或者使用$.getJSON:
您的JSON是正确的,您看到的是[object object],因为alert尝试将对象转换为字符串。警报不是调试的最佳方式。您应该使用console.log,然后查看JS控制台 如果您使用console.log,您会发现它很好。尝试提醒数据[0].name,您将看到它工作正常 另外,您应该在$.get中将类型设置为“json”。jQuery将自动检测它是JSON,因为您有内容类型:text/JSON,但无论如何添加它都是一个好主意
$.get('getDataPartySize.php', function(data) {
console.log(data);
}, 'json');
或者使用$.getJSON:
试试$.getJSON,看看你得到了什么试试$.getJSON,看看你得到了什么从我所看到的,你得到了正确的JSON数据,但是你需要循环遍历每个对象 jQuery有一个内置的each方法,可用于:
$.get('getDataPartySize.php', function(data) {
$.each(data, function(key, item){
alert(item.name);
});
},'json');
然后,这将提醒每个对象的属性“name”。从我所看到的情况来看,您正确地获取了JSON数据,但需要循环遍历每个对象 jQuery有一个内置的each方法,可用于:
$.get('getDataPartySize.php', function(data) {
$.each(data, function(key, item){
alert(item.name);
});
},'json');
然后会提醒每个对象的属性“name”。在数据集上尝试for循环:
for (var i=0; i<data.length; i++){
alert(data[i].name);
}
在数据集上尝试for循环:
for (var i=0; i<data.length; i++){
alert(data[i].name);
}
这可能无关紧要,但您使用的是哪个版本的jquery?请尝试使用console.log而不是alert。alert尝试将对象转换为字符串,即[object object]。这可能无关紧要,但您使用的是哪个版本的jquery?请尝试使用console.log而不是alert。警报尝试将对象转换为字符串,该字符串为[object object]。数据类型是可选的,jQuery将检测它是什么,并进行相应的分析。他有内容类型:text/json,因此jQuery将自动实现它的json,但添加数据类型始终是一个好主意。@Rocket我错过了headerContent类型:text/json;关于这个问题,感谢您更正添加“json”是一个好主意,不管怎么说,太详细也没什么坏处。还有一件事,我想在遍历一个对象(如{name:abc,size:4})时获取每个字段的值,并在一次$的迭代中获取name和size的值。每个?可能吗?@ClusterStorms:$.eachdata,函数{console.logthis.name+'='+this.size;};数据类型是可选的,jQuery将检测它是什么并进行相应的解析。他有内容类型:text/json,因此jQuery将自动实现它的json,但添加数据类型始终是一个好主意。@Rocket我错过了headerContent类型:text/json;关于这个问题,感谢您更正添加“json”是一个好主意,不管怎么说,太详细也没什么坏处。还有一件事,我想在遍历一个对象(如{name:abc,size:4})时获取每个字段的值,并在一次$的迭代中获取name和size的值。每个?可能吗?@ClusterStorms:$.eachdata,函数{console.logthis.name+'='+this.size;};