我想知道测试 JSON 文件中是否存在名称的最佳方法是什么。如果名称不存在,则加载不同的 JSON 文件。我在测试该名称是否存在时没有遇到问题。当名称不存在时,我无法加载新的 JSON 文件。
在人们开始投票之前。我知道简单的 if else 不能以这种方式工作,但这就是我的问题。那么如何设置某种“if”“else”函数来测试名称是否存在?
假设我想测试“name”是否存在于“url1”的 JSON 文件中。
$.getJSON(url1, function (json){
var names = [];
if(json.hasOwnProperty('name')){
// name is present in here so build some HTML
} else {
// name is not present in here so get a different JSON file and build other html
$.getJSON(url2, function (json){
});
}
});
这样做的问题是,当 url1 中的 JSON 中不存在“name”时,不会调用其他 JSON(来自 url2)。
为了澄清一些事情,我做了一个 fiddle
最佳答案
您可以使用并发性。
function JsonGetter(listOfJsonUrls, name, i) {
$.getJSON(listOfJsonUrls[i], function (json) {
if (json.hasOwnProperty(name)) {
// name is present in here so build some HTML
} else {
JsonGetter(listOfJsonUrls, name, i + 1)
});
}
}
这样调用它:
JsonGetter(['url1','url2'], 'name', 0);
关于javascript - 测试 JSON 中的名称是否可用,如果不可用,则执行其他 JSON 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24994158/