如何使用jQuery从嵌套的JSON数组返回第一个项目

时间:2018-04-19 21:37:36

标签: javascript jquery json

我在解析.JSON时遇到了一些问题。

好的,所以'element.lineStatuses'可以在数组中返回1或2个opject但我只想从数组中返回第一个对象。我尝试了很多不同的解决方案,然而,似乎都没有工作......

请注意:我无法使用'$ .first()'作为解决方案,因为我的应用程序依赖于旧版本的jQuery。

   $.ajax({
                    url:"https://api.tfl.gov.uk/line/mode/tube,overground,dlr,tflrail/status",
                    dataType: 'json',
                    type: 'get',
                    cache: false,
                     beforeSend: function() {
        $("#loadingDiv").show();
    },
                    success: function(data){


                        console.log(data);
        var jObject = data;


$.each(jObject, function(index, element) {

       $("#lines").append("<li class=\"lineName\"><h2>" + element.name + "</h2></li>");

      // console.log(element.name);



      // element.lineStatuses; can contain 1 or 2 opjects in an array but i only want to return the first objectin array.

       var status = element.lineStatuses;


        // loop to get line status
        // gets all objects

        $.each(status, function(index, element) { 

            var desc = element.statusSeverityDescription;
            //console.log(desc);

            $("#lines").append("<p class=\"currentStatus\">" + desc + "</p>");

        });

});




            }// end success

    });// end ajax

2 个答案:

答案 0 :(得分:0)

试试这个:

var status = element.lineStatuses[0];

答案 1 :(得分:0)

如果你想要的只是在它自己的数组中获得类数组对象的第一个元素,你可以使用slice创建一个浅拷贝:

var status = [].slice.call(element.lineStatuses, 0, 1);

如果您确定element.lineStatuses是一个数组,而不仅仅是类似数组,您可以使用更简单的方法:

var status = element.lineStatuses.slice(0, 1);