javascript - 如何从两个不同的源中提取 JSON 数据?

标签 javascript jquery json

我想知道是否有办法从两个不同的来源提取和使用 JSON 数据。目前,代码如下所示:

//JSON1
$.getJSON('url1',function(data){
    $.each(data,function(key,val){
        //code
    });

});

//JSON2
$.getJSON('url2',function(data){
    $.each(data,function(key,val){
        //code
    });

});

当我这样做时,我似乎从一个 JSON 函数创建的变量在另一个函数中不可用,这使得它们很难一起使用。 有没有更好的方法让这两者协同工作?

最佳答案

这个函数接受一个 url 数组和一个回调作为参数:

function getMultiJSON(urlList,callback) {
  var respList = {};
  var doneCount = 0;

  for(var x = 0; x < urlList.length; x++) {
    (function(url){
      $.getJSON(url,function(data){
          respList[url] = data;
          doneCount++;

          if(doneCount === urlList.length) {
            callback(respList);
          }
      });

    })(urlList[x]);
  }
}

你会像这样使用它:

getMultiJSON(['url1','url2'],function(response) {

     // in this case response would have 2 properties,
     //
     // response.url1  data for url1
     // response.url2  data for url2

     // continue logic here
});

您可能想要添加超时,因为如果任何 URL 加载失败,该函数将永远不会调用您的处理程序

关于javascript - 如何从两个不同的源中提取 JSON 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29371644/

相关文章:

javascript - 如何将元素附加到动态生成的元素

json - 如何在WildFly中将JSON java.util.Date变量序列化为ISO-8601格式的日期字符串?

javascript - 如何将 JSON 数据从 Express 传递到 pug 中的 javascript/jQuery 脚本?

javascript - 如何在子 ul 上 iqnore mousemove 事件

json - 嵌套中的JSON错误

jQuery AutoComplete,自定义返回数据

javascript jquery 函数这有点错误吗?

javascript - 按部分名称列出的 InDesign 目标 XML 结构元素

javascript - 如何在跳转到 .then 回调之前操作 ajax 请求的结果

javascript - createElementNS() 之后更改字体颜色