如何确定对象内部包含JSON的长度

时间:2016-05-17 15:27:57

标签: javascript angularjs

有没有办法从以下方面获得长度:

{
    "11": {
        "id": "456",
        "uuid": "b596362a-b5bb-4n94-8fd5-1e9fh6fd877b",
        "name": "Test",
        "description": "Test"
    },
    "22": {
        "id": "739",
        "uuid": "c4ccbddf-5177-482f-b5e8-cdd4f699e6b7",
        "name": "Test2",
        "description": "Test2"
    },
    "33": {
        "id": "737",
        "uuid": "m4ccbddv-5177-482f-b5e8-cdd4f699e6b7",
        "name": "Test3",
        "description": "Test3"
    }
}

长度应为3.我尝试使用JSON.stringify(data).length但这会给出整个字符串的长度。

3 个答案:

答案 0 :(得分:1)

除上述答案外,现代浏览器显然具有Object.keys功能。在这种情况下,您可以这样做:

Object.keys(jsonArray).length;

您可以使用以下功能

function getJsonItemLength(item) {
  if (typeof item !== undefined && varNotNull(item) && item) {
        if (Array.isArray(item)) {
            return item.length;
        } else if (typeof item === 'object' ) {
            return Object.keys(item).length;
        } else if (typeof item === 'string' ) {
            return item.length
        } else {
            return 0;
        }
  }
  return 0;
}

答案 1 :(得分:0)

使用Object.keys获取密钥列表(在数组中),以便您可以:

Object.keys(obj).length

答案 2 :(得分:0)

如果您询问关联数组对象的长度,那就是您的答案:Length of a JavaScript object

或者为您节省点击次数:

Object.keys(myObj).length;