Javascript 如何从嵌套JSON获取特定数据

Javascript 如何从嵌套JSON获取特定数据,javascript,jquery,json,Javascript,Jquery,Json,我正在尝试使用jQuery获取嵌套的站点名称,并将名称显示在“div”中。我可以显示“jObject”的内容,但是,我无法找到特定的电台名称 这就是我迄今为止所尝试的 $.ajax({ url: "https://transportapi.com/v3/uk/tube/stations/near.json?app_id=appid&app_key=key&lat=" + lat + "&lon=" + lng + "&page=1&rpp=5",

我正在尝试使用jQuery获取嵌套的站点名称,并将名称显示在“div”中。我可以显示“jObject”的内容,但是,我无法找到特定的电台名称

这就是我迄今为止所尝试的

$.ajax({
    url: "https://transportapi.com/v3/uk/tube/stations/near.json?app_id=appid&app_key=key&lat=" + lat + "&lon=" + lng + "&page=1&rpp=5",
    dataType: 'json',
    type: 'get',
    cache: false,
    success: function(data) {
        //console.log(data);
        var jObject = data.stations;
        // $('#stationName').append(JSON.stringify(jObject));  
        $.each(jObject.name, function(index, element) {
            $('#stationName').append(JSON.stringify(jObject.name));
        });
    }
});
JSON结构

{
    "minlon": -0.23437,
    "minlat": 51.434842,
    "maxlon": -0.03437,
    "maxlat": 51.634842,
    "searchlon": -0.13437,
    "searchlat": 51.534842,
    "page": 1,
    "rpp": 1,
    "total": 147,
    "request_time": "2018-03-09T17:15:22+00:00",
    "stations": [
        {
            "station_code": "MCR",
            "atcocode": "9400ZZLUMTC",
            "name": "Mornington Crescent",
            "mode": "tube",
            "longitude": -0.13878,
            "latitude": 51.53468,
            "lines": [
                "northern"
            ],
            "distance": 492
        }
    ]
}
您应该在jObject上使用$each,而不是在jObject.name上使用$each。在获取名称时需要指定索引,因为stations是一个对象数组,或者只使用element.name

var数据={ minlon:-0.23437, minlat:51.434842, maxlon:-0.03437, maxlat:51.634842, searchlon:-0.13437, searchlat:51.534842, 页码:1, rpp:1, 总数:147, 请求时间:2018-03-09T17:15:22+00:00, 电台:[ { 车站代码:MCR, atcocode:9400ZLLUMTC, 姓名:莫宁顿新月, 模式:管, 经度:-0.13878, 纬度:51.53468, 线路:[ 北方的 ], 距离:492 } ] }; var jObject=数据站; $.eachj对象、函数索引、元素{ console.logjObject[index].name; console.logelement.name; };
您的代码中存在一些错误: $。每个将在数组上迭代,因为您已经将data.stations定义为jObject,所以需要在该数组中迭代

$。每个函数都使用参数索引和元素,第一个是元素在数组中的位置,第二个是元素本身。 因此,代码将是:

var jObject = data.stations;

$.each(jObject, function(index, element) {
  $('#stationName').append(element.name);  
});

检查作业对象[0]。名称站是一个数组。{}对象。[]arrayAPI的密钥在代码中公开。请确保在API网站上重新生成API密钥谢谢您的详细解释!非常有帮助,非常感谢!干杯