【问题标题】:Get Length Of Json object获取 Json 对象的长度
【发布时间】:2014-04-30 02:05:45
【问题描述】:

我有一个从php文件返回的json对象,json值如下

    {
  "0": {
    "id": "35",
    "name": "first name",
    "date": "2014-03-03",
    "age": "25"
  },
  "1": {
    "id": "36",
    "name": "name",
    "date": "0000-00-00",
    "age": "25"
  },
  "2": {
    "id": "37",
    "name": "myname",
    "date": "0000-00-00",
    "age": "25"
  },
  "average_age": 25,
  "count": 3
}

如何获取除 average_age 和 count 以外的值的计数 这是给定的 json 对象,我想在 jQuery 中获得 3 作为长度

【问题讨论】:

  • 为什么不直接访问count 属性?
  • 这个 "average_age":25,"count":3 不是有效的 JSON。它必须是 "average_age":"25","count":"3"
  • @NiettheDarkAbsol 怎么用?
  • @LShetty 使用数字文字作为 JSON 值是完全有效的。见json.org
  • 这个问题似乎是题外话,因为适当的解决方案非常具体到所讨论的数据结构,不太可能帮助其他人。

标签: jquery json


【解决方案1】:

我有答案

Object.keys(result).length // returns 5

更新

从评论来看,这不适用于 IE 7 和 8

【讨论】:

【解决方案2】:

试试:

var count = 0;
while (obj[count]) {
    count++;
}

【讨论】:

    【解决方案3】:

    要“获取average_agecount 以外的值的计数”,您可以执行以下操作:

    function getCount(obj) {
        var count = 0,
            prop;
    
        for (prop in obj) {
            if (obj.hasOwnProperty(prop) && prop !== "average_age" && prop !== "count") {
                count += 1;
            }
        }
        return count;
    }
    
    var str = '{"0":{"id":"35","name":"Ahamed shajeer","date":"2014-03-03","age":"25"},"1":{"id":"36","name":"Meshajeer","date":"0000-00-00","age":"25"},"2":{"id":"37","name":"Iam shajeer","date":"0000-00-00","age":"25"},"average_age":25,"count":3}',
        obj = JSON.parse(str);
    
    console.clear;
    console.log(getCount(obj));
    

    结果:

    3
    

    你不需要 jQuery。反正你为什么不想直接使用count这个字段呢?

    【讨论】:

      【解决方案4】:

      这种方法对我有用:

      var jsonObject= JSON.stringify(response); var count = JSON.parse(jsonObject).length;

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-08-27
        • 1970-01-01
        • 1970-01-01
        • 2015-06-21
        • 1970-01-01
        • 2019-09-22
        • 2013-12-19
        • 2015-03-24
        相关资源
        最近更新 更多