我尝试将此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获取长度
感谢您的帮助。
答案 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)
中工作