如何获取json对象的长度?

时间:2018-09-08 06:51:10

标签: javascript json ajax aem

我写了一个ajax,它在浏览器的控制台中为我提供了json数据,如下所示 Output in the console

这是我的代码

$(document).ready(function() {
   $(function() {
       var searchUrl = "http://localhost:4502/bin/typeaHeadServelt";
       console.log("CONSOLE WORKING");
    $(".search").autocomplete({
    source: function (request, response) {
            $.ajax({

                 url:"http://localhost:4502/bin/typeaHeadServelt",
                 dataType: 'json',
                   data:{term: request.term},
                    success: function(data)
                   {   

                      console.log(data);

                   },
                    error: function (data)
                   {
                        console.log("error");
                    }
            });
        }
    });
 });
})

console.log(data)给了我上面的输出,但是如何获取json对象的长度。

我尝试过像Object.keys(data [0])。length; 但是它总是将答案返回为2。 如何获得长度?

3 个答案:

答案 0 :(得分:2)

如果您在控制台中查看输出,则会看到数据是一个数组。

要获取数组的长度,只需使用即可。

var length = data.length

如果数据将是一个对象,并且您想查看存在多少个键。然后,您将使用。

var length = Object.keys(data).length;

在您的示例中:

如果您使用data.length,它将返回5,因为您的数组的长度为5。

如果您使用Object.keys(data[0]).length,它将返回2,因为您在第一个数组元素中有两个(名称和位置)

有关数组和对象的更多信息可以在下面找到。

MND - Array's
MDN - Object.keys

答案 1 :(得分:1)

您可以使用data.length来获取服务器返回的结果数。

答案 2 :(得分:1)

let jsObject = {'name':'Kasun', 'address':'columbo','age': '29'};

let num = Object.keys(jsObject).length; console.log(num);