Javascript 获取JSON数组的长度

Javascript 获取JSON数组的长度,javascript,jquery,arrays,json,Javascript,Jquery,Arrays,Json,我有一个json文件。我可以使用 $.getJSON.json("mock/Insight72.json", function (jsondata) { response = jsondata.Data1; response2 = jsondata.Data2; }); 但我想找出Data1和Data2的长度。我该怎么办 以下是JSON数据(仅水果部分) 要了解响应对象中有多少元素,可以执行以下操作: var length = 0; for (var key in respon

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

$.getJSON.json("mock/Insight72.json", function (jsondata) {
    response = jsondata.Data1;
    response2 = jsondata.Data2;
});
但我想找出Data1和Data2的长度。我该怎么办

以下是JSON数据(仅水果部分)


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

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;
}
如果要找出其下所有数组的总长度,可以执行以下操作:

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;
}

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

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;
}
如果要找出其下所有数组的总长度,可以执行以下操作:

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;
}

由于
Data1
似乎是
对象
{
..
}
),如果其中一个键/值被明确指定为另一个键/值,则它只有
长度

{
    "aroma": [],
    "length": 2
}
但是,如果您想知道它拥有的键/属性的数量,可以使用:

您还可以检索
数据1
中任何
数组(
[
..
]
)的
长度,例如
“aroma”

或者,如果您想知道对象作为JSON的
长度

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

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

因为
Data1
似乎是一个
对象(
{
..
}
),如果一个被明确指定为另一个键/值,它将只有
长度

{
    "aroma": [],
    "length": 2
}
但是,如果您想知道它拥有的键/属性的数量,可以使用:

您还可以检索
数据1
中任何
数组(
[
..
]
)的
长度,例如
“aroma”

或者,如果您想知道对象作为JSON的
长度

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

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

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

  • 这个与IE7和IE8不兼容。看起来也一样

  • 这一个将通过json进行编码并返回长度:

    function getJSONLegth(response) {
        var count = 0;
        for (var k in response) {
            count++;
        }
        return count;
    }    
    
    var length = getJSONLegth(response);
    var length2 = getJSONLegth(response2);
    
    这对你有帮助吗


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

  • 这个与IE7和IE8不兼容。看起来也一样

  • 这一个将通过json进行编码并返回长度:

    function getJSONLegth(response) {
        var count = 0;
        for (var k in response) {
            count++;
        }
        return count;
    }    
    
    var length = getJSONLegth(response);
    var length2 = getJSONLegth(response2);
    
    这对你有帮助吗


  • 您可能应该重写它以包含
    if(response.hasOwnProperty(key))
    而不是
    &
    -方法。这样,即使是平凡的js开发人员也可能理解它是如何工作的。您可能应该重写它,以包含
    if(response.hasOwnProperty(key))
    ,而不是
    &&
    -方法。这样,即使是平凡的js开发人员也可能理解它是如何工作的。