json.length()关联数组格式

时间:2016-01-05 10:18:15

标签: javascript arrays json

我使用的API为我提供了一些JSON。

当我检索10个或更少的元素时,我的JSON格式为:

[
{"data":"data1","data2":"data3"},
{...},
{"data":"data1","data2":"data3"}
]

但是,当我检索超过10个元素时,json_encode格式化我的数据如下:

{"0":[{"data":"data1","data2":"data3"}],
"...":[{...}],
"12":[{"data":"data1","data2":"data3"}]
}

这两种JSON在两种情况下都有效,但是我不能在第二种JSON上使用JS myJson.length

我如何开展工作,如果我不能,我该怎么做才能测试我的JSON数组的长度?

谢谢:)

2 个答案:

答案 0 :(得分:1)

json_encode将返回后一种格式的原因是,如果不是所有键都连续排序数字。原因是PHP只有一种数组类型,但这会映射到JSON []数组或{}对象,具体取决于它包含的键。这意味着你在编码之前以某种方式将数组中的键进行了预测。你的修复应该在那里,而不是在Javascript方面。

答案 1 :(得分:0)

第二个JSON实际上不是JSON数组而是JSON对象,您可以按照以下步骤获取对象中所有键的数组,然后从中获取长度:

Object.keys(JSON).length