另一个JSON中的JSON请求?

时间:2017-02-03 06:40:32

标签: javascript jquery json

我正在尝试使用jquery发出JSON请求,第一个JSON请求返回我想要的数据。

在第一次成功JSON请求之后,我想查看第一个JSON请求的结果,并在第二个JSON请求中使用它。

我目前面临的问题是我的第二个JSON请求返回空对象。 有人可以帮我弄清楚为什么我的第二个JSON没有返回什么?

即使我在网站网址上发布第二个JSON网址,它也会显示JSON数据。但是在我的程序中它没有返回任何东西。

这是代码

$(document).ready(function() {

  var api_wiki = "https://en.wikipedia.org/w/api.php?action=query&format=json&list=search&srsearch=cat&srwhat=text&callback=?";
  var api_wiki_extract = "https://en.wikipedia.org/w/api.php?action=query&format=json&prop=info%7Cextracts&inprop=url&exsentences=1&callback=?&titles=";
  var sp;
  var linkReady = [];
  var linkR;

  $.getJSON(api_wiki, function(data) {
    sp = data.query.search;
    linkR = workWithTheData(sp);
    anotherJSON(linkR);
  }); //End of getJSON 1

  function workWithTheData(sp) {
    for (var i = 0; i < sp.length; i++) {
      linkReady[i] = api_wiki_extract + sp[i].title;
    }
    return linkReady;
  }

  function anotherJSON(linkR){
    $.getJSON(linkR[0], function(data1) {
     console.log(data1); 
    });
  }

}); //End of document ready

1 个答案:

答案 0 :(得分:1)

您需要了解的一些事项:

  1. JSON是一种数据格式。你正在做的是由jQuery提供的HTTP Ajax请求,它以JSON格式返回数据。

  2. 您的代码完全正常。你可以看到@Hanlet的link

  3. 在您的第二个请求之后,它将在浏览器的控制台中返回{batchcomplete: "", query: Object}。一旦你扩展了query,你就会看到里面的一切。

    1. 您可能面临的第二种情况是,可能还有一些其他部分会影响您的ajax请求。
    2. 您可以尝试转换回普通$.ajax请求并设置async: false Is it possible to set async:false to $.getJSON call