如何获取json对象的大小?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (281)

我有一个json对象,它由Ajax请求返回,我只是想知道我是否正确地使用了它:

console.log(data.length);
console.log(data.phones.length);

即使它们是有效的对象他们都返回了undefined

更新:

返回的JSON对象示例:

{"reqStatus":true,"phones":{"one":{"number":"XXXXXXXXXX","type":"mobile"},"two":{"number":"XXXXXXXXXX","type":"mobile"}}}
提问于
用户回答回答于

你的问题是你的对象没有length属性(除非你在JSON中的某个地方定义它),因为对象与数组不一样,即使用作关联数组也是如此。如果对象是一个数组,它会有一个长度。你有两个选择(也许更多)。

1)改变你的JSON结构(假设这是可能的),使'phones为

"phones":[{"number":"XXXXXXXXXX","type":"mobile"},{"number":"XXXXXXXXXX","type":"mobile"}]

2)遍历你的phones对象中包含的对象,并计算它们,例如

var key, count = 0;
for(key in data.phones) {
  if(data.phones.hasOwnProperty(key)) {
    count++;
  }
}
用户回答回答于

你可以用这样的东西

<script type="text/javascript">

  var myObject = {'name':'Kasun', 'address':'columbo','age': '29'}

  var count = Object.keys(myObject).length;
  console.log(count);
</script>

扫码关注云+社区

领取腾讯云代金券