我从API获取数据。 API的格式如下:
{
"total":1,
"launches":[
{
"name":"Falcon 9 Full Thrust | BulgariaSat-1",
"net":"June 23, 2017 18:10:00 UTC",
"location":{
"pads":[
{
"name":"Launch Complex 39A, Kennedy Space Center, FL",
"agencies":[
{
"name":"SpaceX"
},
{
"name":"National Aeronautics and Space Administration"
}
]
}
],
"name":"Kennedy Space Center, FL, USA"
},
"rocket":{
"name":"Falcon 9 Full Thrust",
"agencies":[
{
"name":"SpaceX"
}
],
"infoURL":"http://www.spacex.com/falcon9"
},
"missions":[
{
"name":"BulgariaSat-1"
}
]
}
],
"count":1
}
我用来获取JSON的jQuery是:
$.getJSON('https://launchlibrary.net/1.2/launch/next/1', function(data) {
data.launches.forEach(function(d) {
$('#launch-main-name').append('<p class="rocket-main-data">' + d.name + '</p>');
$('#launch-main-date').append('<p class="rocket-main-data">' + d.net + '</p>');
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p id="launch-main-name"></p>
<p id="launch-main-date"></p>
我遇到的问题是我无法从“launch”数组中的grand-child元素中获取任何数据:例如“location” - &gt; “垫” - &gt; “名称”。但我能够获得“启动”数组中的“名称”和“网络”数据。
我已尝试过在本网站上找到的一些答案,但这些答案都没有奏效。
TL; DR 如何让我的getJSON目标成为数组中的grand-child元素?
答案 0 :(得分:1)
这是一个小提琴:https://jsfiddle.net/5kknehw7/
Pads也是一个数组,所以也必须遍历这个。
data.launches.forEach(function(d) {
console.log(d.name);
console.log(d.net);
d.location.pads.forEach(function(p) {
console.log(p.name);
});
});
答案 1 :(得分:0)
你可以用同样的方式访问孙子,即。 d.location.pads[0].name
你必须看看它是一个数组还是一个对象。基本上,完整的路径是:
var jString = { // your object }
jString.launches[0].location.pads[0].name
答案 2 :(得分:0)
$.getJSON('https://launchlibrary.net/1.2/launch/next/1', function(data) {
data.launches.forEach(function(d) {
$('#launch-main-name').append('<p class="rocket-main-data">' + d.name + '</p>');
$('#launch-main-date').append('<p class="rocket-main-data">' + d.net + '</p>');
d.location.pads.forEach(function(l){
$('#launch-main-name').append('<p class="rocket-main-data">' + l.name + '</p>');
l.agencies.forEach(function(a){
$('#launch-main-name').append('<p class="rocket-main-data">' + a.name + '</p>');
});
});
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p id="launch-main-name"></p>
<p id="launch-main-date"></p>
&#13;