【问题标题】:count the number of JSON objects in object using javascript or jquery使用 javascript 或 jquery 计算对象中 JSON 对象的数量
【发布时间】:2015-11-22 20:14:27
【问题描述】:

我有一个来自 AJAX 响应的 JSON 数据,如下所示

    {
        "2015001":{"sname":"name1","01-07-2015":null,"02-07-2015":"0","03-07-2015":"0","04-07-2015":"0","05-07-2015":null,"06-07-2015":"0","07-07-2015":"0","08-07-2015":"0","09-07-2015":"0","10-07-2015":"0","11-07-2015":null,"12-07-2015":null,"13-07-2015":"0","14-07-2015":"1","15-07-2015":null,"16-07-2015":"2","17-07-2015":null,"18-07-2015":null,"19-07-2015":null,"20-07-2015":"2","21-07-2015":"0","22-07-2015":"0","23-07-2015":"0","24-07-2015":"1","25-07-2015":"1","26-07-2015":null,"27-07-2015":"2","28-07-2015":null,"29-07-2015":"2","30-07-2015":"2","31-07-2015":"2"},
        "2015002":{"sname":"name2","01-07-2015":null,"02-07-2015":"0","03-07-2015":"1","04-07-2015":"1","05-07-2015":null,"06-07-2015":"0","07-07-2015":"0","08-07-2015":"0","09-07-2015":"0","10-07-2015":"2","11-07-2015":null,"12-07-2015":null,"13-07-2015":"1","14-07-2015":"1","15-07-2015":null,"16-07-2015":"2","17-07-2015":null,"18-07-2015":null,"19-07-2015":null,"20-07-2015":"0","21-07-2015":"0","22-07-2015":"0","23-07-2015":"0","24-07-2015":"0","25-07-2015":"0","26-07-2015":null,"27-07-2015":"0","28-07-2015":null,"29-07-2015":"0","30-07-2015":"0","31-07-2015":"0"},
        "2015003":{"sname":"name3","01-07-2015":null,"02-07-2015":"2","03-07-2015":"2","04-07-2015":"2","05-07-2015":null,"06-07-2015":"2","07-07-2015":"2","08-07-2015":"0","09-07-2015":"2","10-07-2015":"2","11-07-2015":null,"12-07-2015":null,"13-07-2015":"2","14-07-2015":"0","15-07-2015":null,"16-07-2015":"2","17-07-2015":null,"18-07-2015":null,"19-07-2015":null,"20-07-2015":"2","21-07-2015":"2","22-07-2015":"0","23-07-2015":"2","24-07-2015":"2","25-07-2015":"2","26-07-2015":null,"27-07-2015":"2","28-07-2015":null,"29-07-2015":"2","30-07-2015":"2","31-07-2015":"2"},
        "2015004":{"sname":"name4","01-07-2015":null,"02-07-2015":"2","03-07-2015":"2","04-07-2015":"2","05-07-2015":null,"06-07-2015":"0","07-07-2015":"2","08-07-2015":"2","09-07-2015":"2","10-07-2015":"2","11-07-2015":null,"12-07-2015":null,"13-07-2015":"2","14-07-2015":"2","15-07-2015":null,"16-07-2015":"2","17-07-2015":null,"18-07-2015":null,"19-07-2015":null,"20-07-2015":"0","21-07-2015":"2","22-07-2015":"2","23-07-2015":"2","24-07-2015":"2","25-07-2015":"0","26-07-2015":null,"27-07-2015":"2","28-07-2015":null,"29-07-2015":"0","30-07-2015":"2","31-07-2015":"2"},
        "2015005":{"sname":"name5","01-07-2015":null,"02-07-2015":"2","03-07-2015":"2","04-07-2015":"0","05-07-2015":null,"06-07-2015":"2","07-07-2015":"2","08-07-2015":"2","09-07-2015":"2","10-07-2015":"2","11-07-2015":null,"12-07-2015":null,"13-07-2015":"2","14-07-2015":"2","15-07-2015":null,"16-07-2015":"2","17-07-2015":null,"18-07-2015":null,"19-07-2015":null,"20-07-2015":"0","21-07-2015":"2","22-07-2015":"2","23-07-2015":"2","24-07-2015":"2","25-07-2015":"2","26-07-2015":null,"27-07-2015":"2","28-07-2015":null,"29-07-2015":"2","30-07-2015":"2","31-07-2015":"2"},
        "2015006":{"sname":"name6","01-07-2015":null,"02-07-2015":"2","03-07-2015":"2","04-07-2015":"2","05-07-2015":null,"06-07-2015":"2","07-07-2015":"2","08-07-2015":"2","09-07-2015":"2","10-07-2015":"2","11-07-2015":null,"12-07-2015":null,"13-07-2015":"2","14-07-2015":"2","15-07-2015":null,"16-07-2015":"2","17-07-2015":null,"18-07-2015":null,"19-07-2015":null,"20-07-2015":"2","21-07-2015":"0","22-07-2015":"2","23-07-2015":"2","24-07-2015":"2","25-07-2015":"2","26-07-2015":null,"27-07-2015":"2","28-07-2015":null,"29-07-2015":"2","30-07-2015":"2","31-07-2015":"2"}
    }

每个对象都有相同数量的对象。在这里,我想计算第一个对象(2015001)中的对象数量。每次请求都会更改密钥。

我试过了

console.log(Object.keys(data[2015001]).length)

我得到了我需要的东西

但是我怎么能没有钥匙(2015001)

【问题讨论】:

    标签: javascript jquery json


    【解决方案1】:

    您可以获取first key 并使用它来访问对象,这可能是最快的方式,但是您的信息又有点不清楚,您正在谈论对象和更多对象,但我不确定您何时谈论外部对象或内部对象时。

    for (var k in Object) {
        break
    }
    console.log(Object.keys(data[k]).length)
    

    【讨论】:

      【解决方案2】:

      如果你总是想知道第一个对象的键数,那么你应该使用Object.keys(data[Object.keys(data)[0]]).length

      请注意,如果顺序对您很重要,您应该在数组中而不是在对象中发送键,因为根据规范,对象是一组无序的名称/值对。

      【讨论】:

      • 不要强制使用数组,只有在没有键的情况下使用数组,如果有键,请使用对象。您将数组与哈希表混淆了,但在 js 中,哈希表无论如何都是对象
      • @DarkMukke 这里的问题是他似乎总是想检查他列表中的第一个日期,我猜他假设它会按照他输入/发送到的相同顺序客户。由于一个对象是无序的,他期望的顺序可能会在上面的例子中改变,除非使用了一个数组(它总是保持顺序)。将此视为我所指的可能令人头疼的示例:stackoverflow.com/questions/3948206/json-order-mixed-up
      • 很公平,您提出了一个有效的观点,但这不在 OP 所要求的范围内。如果他获得的数据来自外部某个地方,那么你没有给他最好的解决方案怎么办?
      • 首先我给了他解决方案,然后提防这种做法的恶龙:)
      • 哇,哇哇哇哇哇哇哇哇哇哇哇哇。
      猜你喜欢
      • 2012-11-27
      • 1970-01-01
      • 2019-04-04
      • 1970-01-01
      • 2020-07-23
      • 2013-06-03
      • 2012-01-03
      • 2014-02-24
      相关资源
      最近更新 更多