0

我有一个 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,
    }, ............
4

3 回答 3

3

Data1看起来是一个Object( {... }),它只有一个被明确地作为length另一个键/值给出:

{
    "aroma": [],
    "length": 2
}

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

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

您还可以检索 中length的任何Array( [... ]) Data1,例如"aroma"

var aromas = jsondata.Data1.aroma.length;

或者,如果您想知道lengthObject 的 JSON 格式:

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

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

于 2013-06-27T06:09:41.690 回答
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;
}
于 2013-06-27T06:07:20.513 回答
0

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

  1. 这个不兼容 IE7 和 8。也请看这里

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

    对你有帮助吗?

于 2013-06-27T06:32:42.053 回答