繁体   English   中英

JSON响应数据长度在Ajax中得到未定义的错误?

[英]JSON response data length getting undefined error in Ajax?

我想在JavaScript警报框中获取language的长度-

看截图-

Ajax响应-

在此处输入图片说明

在此处输入图片说明

我的Ajax代码-

function search_menu(){
    $.ajax({
        type: 'post',
        url: rootUrl() + "rest_apis/search_menu.json", 
        cache: false,        
        success: function(res){ //alert(data.data[0].language[142]);
            var len = res.data[0].language.length; 
            alert(len); //Showing undefined
        },
        contentType: 'application/json',
        dataType: 'json'
    });
}

我只是提醒alert(lang)显示未定义。 实际用的语言有36条记录。 为什么其显示undefined

试试: Object.keys(res.data[0].language).length

现场示例:

 var res = { "data" : [ { "language" : { "107":"english", "142":"hindi", "143" : "indonesian"} } ] } alert("There are " + Object.keys(res.data[0].language).length + " languages." ) 

使用Object.keys().forEach(); .count您的json长度。 ....点击此处....

var json={"data":[{"language":{"190":"english","191":"gujarati"}}]};
var length=0;
Object.keys(json.data[0].language).forEach(function(key) {
  length++; 
});
alert(length);
var res={"data":[{"language":{"190":"english","191":"gujarati"}}]};
console.log( Object.keys(res['data'][0].language).length);

JS小提琴

您将language languge认为是language ,这就是为什么language undefined

即使您没有,它也是一个对象而不是数组,因此它没有length属性。 您需要对键进行计数以找出有多少键。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM