javascript - 如何对多个 URL 使用 getjson()

标签 javascript json getjson jqxhr

我正在尝试检索一些 JSON 文件。不确定哪个 URL 有效,因此我正在寻找一种方法来尝试所有 URL,如果一个 URL 失败,则尝试另一个 URL。

网址如:

www.domain.com/a.json
www.domain.com/b.json
www.domain.com/c.json

var url = "www.domain.com";
var file1 = "/a.json";
var file2 = "/b.json";
var file3 = "/c.json";

$.getJSON( url + file1, function( json ) {
  console.log( "JSON Data: " + json.users[ 3 ].name );
 });

此外,每个 json 文件的结构并不相同,因此根据文件的不同,我必须有不同的方式来访问它。假设对于文件 a.json 我将通过 json.users[3].name 访问数据,但在文件 b.json 中,相同的数据将通过 访问json.sources.users[3].name

那么我怎样才能创建一个这样的方法,在失败时尝试新的 url 呢? 通过失败,我的意思是它可能不是现有文件(404)或相同的腹股沟策略错误。

提前致谢。

最佳答案

您可以将这些调用链接在一起,因此如果一个调用失败,它将使用 $.getJSON 上的 jquery fail 方法转到下一个调用。像这样的事情:

$.getJSON( url + file1, function( json ) {
    //do something with file1
}).fail(function () {
    $.getJSON( url + file2, function( json ) {
        //do something with file2
    }).fail(function () {
        $.getJSON( url + file3, function( json ) {
            //do something with file3
        })
    });
});

文档链接:http://api.jquery.com/jquery.getjson/#jqxhr-object

关于javascript - 如何对多个 URL 使用 getjson(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43770048/

相关文章:

jquery - 好吧,我真的不喜欢 JSON 的东西吗?

javascript - Sidenav 触发器不适用于 Safari/iOS PWA

javascript - SheetJS xlsx-style需要excel中的单元格样式

python - 嵌套 json 的 .get 方法不起作用

c++ - 为什么 const char* 不适用于 stringstream 和 boost 的 read_json?

javascript - 输出一次 getJSON 结果,它们每 x 秒更新一次,结果不会一遍又一遍地重复

android - 无法解析 MySQL 数据库中的 JSON 数据

javascript - 通过它在 Jquery 中的值获取选项 HTML

javascript - NG-Options 不允许我设置值

java - JSON HashMap 反序列化