我有一个JSON对象,它是由 AJAX 请求返回的,我在使用.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"}}}
9条答案
按热度按时间dphi5xsq1#
你可以用这个
yyhrrdl82#
你的问题是你的phones对象没有length属性(除非你在你返回的JSON中的某个地方定义了它),因为对象和数组不一样,即使用作关联数组。如果phones对象是一个数组,它将有一个长度。你有两个选择(也许更多)。
1.改变你的JSON结构(假设这是可能的),使'电话'成为
(note每个音素没有单词编号的标识符,因为它们是在0索引数组中返回的)。在此响应中,
phones.length
将有效。1.遍历包含在你的电话对象中的对象,并在你去的时候计算它们,例如。
如果您只针对新的浏览器,选项2可能看起来像这样
x8diyxa73#
您不需要更改JSON格式。
替换:
其中:
ncgqoxb04#
考虑使用underscore.js。它将允许您检查大小,即。就像这样
dddzy1tm5#
wsewodh26#
试试这个
n7taea2i7#
用这个
Object.keys(jsonObject).length
55ooxyrt8#
ubbxdtey9#