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

时间:2018-03-09 17:55:06

标签: javascript jquery json

我试图使用jQuery获取嵌套的电台名称,并在' div'中显示名称。我能够显示' jObject'的内容。但是,我无法访问特定的电台名称。

这是我到目前为止所尝试过的。

home/index

JSON结构

$.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));
        });
    }
});

2 个答案:

答案 0 :(得分:3)

您应该在sum(df.values.tolist(),[]) Out[65]: ['a', 'b', 'c', 'f', 'g', 'h', 'k', 'l', 'm'] 上使用$each,而不是jObject。并且您需要在获取名称时指定索引,因为jObject.name是一个对象数组或只是使用stations



element.name

var data={
    "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
        }
    ]
};
var jObject = data.stations;
   

$.each(jObject, function(index, element) {
  console.log(jObject[index].name);
  console.log(element.name);
});




答案 1 :(得分:1)

您的代码中存在一些问题: $.each()将迭代一个数组,因为您已将data.stations定义为jObject,您需要迭代in该数组。

$.each函数接受参数indexelement,第一个是元素在数组中的位置,第二个是元素本身。 所以代码将是:

var jObject = data.stations;

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

检查JSFIDDLE