获取JSON数组的长度

时间:2013-06-27 06:04:37

标签: javascript jquery arrays json

我有一个json文件。我可以使用

获取json文件中的数据
$.getJSON.json("mock/Insight72.json", function (jsondata) {
    response = jsondata.Data1;
    response2 = jsondata.Data2;
});

但我想找到Data1和Data2的长度。我该怎么办?

这是JSON数据(只有水果部分)..

],
"Data1": {
    "kitchen selectives": [{
        "displayColor": "#DC143C",
            "numProducts": 1,
            "averagePrice": 25.99,
    }],
        "aroma": [{
        "displayColor": "#991F1F",
            "numProducts": 1,
            "averagePrice": 60.25,
    }, {
        "displayColor": "#DC143C",
            "numProducts": 1,
            "averagePrice": 46.19,
    }, ............

3 个答案:

答案 0 :(得分:3)

由于Data1似乎是Object{ ... }),如果明确给出length,它只会有{ "aroma": [], "length": 2 } 作为另一个关键/值:

var keyCountData1 = Object.keys(jsondata.Data1).length;

但是,如果您想知道它拥有的键/属性数量,可以使用Object.keys()

length

您还可以在Array内检索[ ] Data1 "aroma"内的var aromas = jsondata.Data1.aroma.length; ,例如length

var dataLength = JSON.stringify(jsondata.Data1).length;

或者,如果您想知道Object的{{1}}为JSON:

{{1}}

然而,除此之外,您还必须明确说明您希望的“长度”。

答案 1 :(得分:2)

要了解response对象中有多少元素,您可以执行以下操作:

var length = 0;
for (var key in response) {
    response.hasOwnProperty(key) && ++length;
}

如果要查找其下所有数组的总长度,可以执行以下操作:

var length = 0;
for (var key in response) {
    response.hasOwnProperty(key) && length += response[key].length;
}

答案 2 :(得分:0)

您可以使用两种不同的方法

  1. 这个与IE7和8不兼容。看看here

    var length = Object.keys(response).length;
    var length2 = Object.keys(response2).length;
    
  2. 这个将通过json并返回长度:

    function getJSONLegth(response) {
        var count = 0;
        for (var k in response) {
            count++;
        }
        return count;
    }    
    
    var length = getJSONLegth(response);
    var length2 = getJSONLegth(response2);
    

    对你有帮助吗?