如何使用jquery从2个json文件加载数据?

时间:2011-04-21 22:25:39

标签: jquery ajax json

我有两个json文件,我想对它们进行ajax调用。

$.getJSON('http://www.example.com/contest_media', function(data) { do something });
$.getJSON('http://www.example.com/contest', function(data) { do something });

我希望它变得像:

$.getJSON(['http://www.example.com/contest_media', 'http://www.example.com/contest'], function(data) { do something});

我也在使用$.each(data, function(i,item) {}所以我不能这样做:

$.getJSON('http://www.example.com/contests', function(data) { 
$.each(data, function(i,item) {
    do something
    $.getJSON('http://www.example.com/contest_media', function(data) {do something });
}
});

此处contest_media无法跟踪contests

我基本上想要使用同一$.each中两个json文件中的数据。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

我相信这可以通过$.when完成。在您的情况下,您的代码可能看起来像......

$.when(
    $.getJSON('http://www.example.com/contest_media'),
    $.getJSON('http://www.example.com/contest')
).done(function(contestMedia, contest) {

    // do something    
    // contestMedia = [ "success", statusText, jqXHR ]
    // contest = [ "success", statusText, jqXHR ]

    // response data can be gotten with contest[2].responseText

});

jQuery doc page for $.when

请注意,这需要jQuery 1.5版。

答案 1 :(得分:0)

你能不能只是筑巢吗?我想你无论如何都需要依赖它们的数据。

$.getJSON('http://example.com/contest_media', function(data) {
 // do basic stuff
 $.getJSON('http://example.com/contest', function(data) {
   // do more stuff now that you have both pieces of data
 });
});