JavaScript Ajax数据是数组,但长度未定义
我有以下Json结果: (取自控制台) 如果我在控制台中执行JavaScript Ajax数据是数组,但长度未定义,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有以下Json结果: (取自控制台) 如果我在控制台中执行数据[0]操作,我将得到以下结果: Object {id: 125, Module_id: 2, academy_id: 7, Team_id: 5, end: "2014-08-12 00:00:00"…} 但是,当我执行data.length时,值是未定义的有人能告诉我发生了什么吗?您将json结果结构化为对象而不是数组。不要把它们混在一起数据[0]是结果对象的第一个实例变量的值。如果您想在发送json对象进行解析之前将其结构化为
数据[0]
操作,我将得到以下结果:
Object {id: 125, Module_id: 2, academy_id: 7, Team_id: 5, end: "2014-08-12 00:00:00"…}
但是,当我执行
data.length
时,值是未定义的
有人能告诉我发生了什么吗?您将json结果结构化为对象
而不是数组
。不要把它们混在一起<代码>数据[0]是结果对象的第一个实例变量的值。如果您想在发送json对象进行解析之前将其结构化为数组,那么在php文件中,请确保将该对象编码为数组
read.php
<?
$data = array('a' => 1, 'b' => 2, 'c' => 3);
print json_encode($data);
?>
您将json结果结构化为
对象
而不是数组
。不要把它们混在一起<代码>数据[0]是结果对象的第一个实例变量的值。如果您想在发送json对象进行解析之前将其结构化为数组,那么在php文件中,请确保将该对象编码为数组
read.php
<?
$data = array('a' => 1, 'b' => 2, 'c' => 3);
print json_encode($data);
?>
使用
Object.keys(data).length;
方法返回给定对象自身的数组
可枚举属性,其顺序与
for…in循环(不同之处在于for in循环枚举
原型链中的属性)
使用
Object.keys(data).length;
方法返回给定对象自身的数组
可枚举属性,其顺序与
for…in循环(不同之处在于for in循环枚举
原型链中的属性)
这将按预期工作:
Object.getOwnPropertyNames(data).length
这将按预期工作:
Object.getOwnPropertyNames(data).length
数据不是数组。。。它是一个对象,因此没有长度属性更改JSON结构,使其成为一个对象数组。您试图获取的对象长度无效。请参见以下回答:改为尝试此
对象。键(数据)。长度数据不是数组。。。它是一个对象,因此没有长度属性更改JSON结构,使其成为一个对象数组。你试图获取一个无效对象的长度。请看下面的答案:试试这个object.keys(data).length
,或者他可以这样使用data
一个数组。或者他可以这样使用data
一个数组。我认为这也行得通。getOwnPropertyNames(data.length)我认为这也起作用。Object.getOwnPropertyNames(数据).length