我想在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
?
答案 0 :(得分:7)
尝试: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." )
答案 1 :(得分:3)
使用Object.keys().forEach();
。计算你的json长度。....CHeck to click here....
var json={"data":[{"language":{"190":"english","191":"gujarati"}}]};
var length=0;
Object.keys(json.data[0].language).forEach(function(key) {
length++;
});
alert(length);
答案 2 :(得分:2)
var res={"data":[{"language":{"190":"english","191":"gujarati"}}]};
console.log( Object.keys(res['data'][0].language).length);
<强> JS Fiddle 强>
答案 3 :(得分:1)
您将language
拼错为languge
,这就是undefined
的原因。
即使你没有,它也是一个对象而不是一个数组,所以它没有length
属性。您需要计算密钥以找出有多少密钥。