2017-07-25 76 views
0

我试图从API加载人员数据:www.swapi.co。 但是我不知道如何加载电影标题 而不是他们的api地址。如何加载json数组

$(function(){ 

var list = $('.list'); 
var submit = $('.submit-people'); 
var people = '1'; 

submit.on('click',function(){ 
    people++; 
    list.empty(); 

    $.ajax({ 

     type: 'GET', 
     url: 'https://swapi.co/api/people/' + people + '/', 

     success: function(data) { 

      list.append('<li>Name:' + data.name + '</li>'); 
      list.append('<li>Height:' + data.height + '</li>'); 
      list.append('<li>Mass:' + data.mass + '</li>'); 
      list.append('<li>Gender:' + data.gender + '</li>'); 
      list.append('<li>Movies:' + data.films + '</li>'); 

     } 

    }) 

}) 

我当前的代码是在这里:https://jsfiddle.net/wtpy71d7/2/

真的感谢任何帮助或建议

+0

对于'data.films'中的每个影片,您都必须执行另一个查询(另一个'.ajax')来获取详细信息(例如电影标题)。这是REST API的一个常见特性。 –

+0

感谢您的回复,这对我很有帮助 – Mindfuc

回答

1

这可以帮助你。

success: function(data) { 
    ... 
    for(var i = 0; i< data.films.length; i++) 
      $.ajax({ 
      type: "get", 
      url: data.films[i], 

      success: function (data) { 
       list.append('<li>Movies:' + data.title + '</li>'); 
      } 
      }); 
    } 
} 
+0

是的,它是有益的,我现在得到它!谢谢 – Mindfuc

0

看起来他们是给你另一个API请求的URL。 你可以做的是做另一个AJAX调用并获得每个电影的细节,然后解析这些结果并将它们追加到你的列表中。它可能看起来像这样。

list.append('<li>Movies:' + getMovies(data.films) + '</li>'); 

你的下一个Ajax调用可能是这个样子:

var getMovies = function(moviesAPI) { 

$.ajax({ 
    type: 'GET', 
    url: moviesAPI, 
    success: function(data) { 
    return data; 
    } 
}) 

}