JavaScript Ajax数据是数组,但长度未定义

时间:2014-08-14 12:29:58

标签: javascript jquery ajax

我有以下Json结果:

(取自控制台)

data
Object {0: Object, 1: Object, 2: Object, 3: Object, 4: Object, 5: Object, 7: Object}

如果我在控制台中data[0]我得到以下结果:

Object {id: 125, Module_id: 2, academy_id: 7, Team_id: 5, end: "2014-08-12 00:00:00"…}

然而,当我data.length undefined时,价值是{{1}},有人能告诉我发生了什么吗?

3 个答案:

答案 0 :(得分:5)

使用 Object.keys

Object.keys(data).length;

DEMO

  

Object.keys()方法返回给定对象自己的数组   可枚举的属性,与a提供的顺序相同   for ... in循环(不同之处在于for-in循环枚举   原型链中的属性也是如此。

答案 1 :(得分:1)

您将json结果构建为Object 而不是 Array。不要混淆那些! data[0]是结果对象的第一个实例变量的值。如果你想在发送它之前将你的json对象构造成一个数组,那么在你的php文件中确保你将对象编码为一个数组

read.php

<?
    $data = array('a' => 1, 'b' => 2, 'c' => 3);
    print json_encode($data);
?>

答案 2 :(得分:0)

这将按预期工作:

out.clear();