我有一个由AJAX请求返回的JSON对象,但我在使用.length
时遇到了一些问题,因为它总是返回undefined
。只是想知道我是否用对了:
console.log(data.length);
console.log(data.phones.length);
它们都返回undefined
,即使它们是有效的对象。
更新:
返回的JSON对象示例:
{"reqStatus":true,"phones":{"one":{"number":"XXXXXXXXXX","type":"mobile"},"two":{"number":"XXXXXXXXXX","type":"mobile"}}}
发布于 2013-01-17 20:49:45
你可以使用像这样的
var myObject = {'name':'Kasun', 'address':'columbo','age': '29'}
var count = Object.keys(myObject).length;
console.log(count);
发布于 2011-07-20 10:21:33
您的问题是您的phones对象没有length属性(除非您在返回的JSON中的某个地方定义了它),因为对象与数组不同,即使用作关联数组也是如此。如果phones对象是一个数组,那么它应该有一个长度。你有两个选择(也许更多)。
“电话”:{"number":"XXXXXXXXXX","type":"mobile"},{"number":"XXXXXXXXXX","type":"mobile"}。在此响应中,phones.length
将是有效的。
var key,count = 0;for(data.phones in key){ if(data.phones.hasOwnProperty(key)) { count++;} }
如果您只针对新的浏览器,那么选项2可能类似于this
发布于 2016-01-20 23:03:34
你不需要改变你的JSON格式。
替换:
console.log(data.phones.length);
通过以下方式:
console.log( Object.keys( data.phones ).length ) ;
https://stackoverflow.com/questions/6756104
复制相似问题