Php 无法正确获取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

通过这样做,我得到了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],[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;};