在 ajax 调用中,我检索一个 JSON 对象并通过长度属性计算结果的数量。但是在另一个代码中,通过相同类型的调用和对服务器端脚本的少量修改,长度属性检索我总是未定义。为什么?请注意,在开发人员控制台中,msg 被视为一个对象(我认为,通过 ajax 从 JSON 自动转换),而不是这样的数组。
$.ajax({
url : 'richiediListaVideo.php',
type : 'POST',
data : data,
dataType : 'json',
success : function (msg)
{
alert(msg['videos'].length)
},
“未定义”长度的对象类似于
-video
--title
--duration
---tags
---8 "funny"
---1352 "animals"
---13 "Tv"
我的目标是检索标签长度,我写了msg['video']['tags'].length
这是“msg”的字符串化版本
{"video":{"duration":"5:51","views":"2650","video_id":"512498","rating":"5.00","ratings":"5","title ":"可爱的狗", "publish_date":"2013-08-05 16:50:08","tags":{"8":"funny", "54":"lol","75":"动物","89":"花园"}}}
澄清:无论如何我知道如何计算标签的数量,但关键是我真的想知道为什么会这样
无论如何,我知道如何计算标签的数量
var length=0;
for(var elemy in res['video']['tags']) length++
但关键是我真的很想知道为什么会这样