如何打印此JSON对象的长度?

时间:2014-08-15 01:34:31

标签: javascript json

我尝试将此JSON对象的长度打印到控制台,但我一直收到' undefined'。

这是在PHP中进行JSON编码,然后通过ajax返回到匿名函数作为' msg'

{"1":{"item_id":"shirt_straight--small","quantity":5},"2":{"item_id":"shirt_straight--medium","quantity":"2"}}

打印到控制台:

console.log(msg.length); //undefined
console.log(msg[1].item_id); //shirt_straight--small

我能够打印msg [1] .item_id的值,但我无法通过msg.length获取长度

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

数组具有length属性。对象不是(默认情况下)。我认为问题出在php端...你应该编码一个数组并将其发回。数组是零索引的,因此可能是问题所在。也许是json_encode(array_values($msg))

如果你的钥匙是正确的,请给Object.keys(msg).length一个镜头。

答案 1 :(得分:0)

这可能是Length of a JavaScript object

的副本

看看接受的答案。

顺便说一句,刚发现谷歌搜索" javascript对象长度" ;)

修改

确实,对象没有长度属性,你可以通过Object.keys(foobar).length来获得长度,但它赢得了#。在IE8(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys

中工作