javascript - 如果 $.each() 之前的 json 响应为空,则检查 $.each() 内的 var 内容
问题描述
$(document).ready(function() {
$.getJSON("https://v4p4sz5ijk.execute-api.us-east-1.amazonaws.com/anbdata/states/notams/notams-list?format=json&api_key=90824210-70a2-11ea-9997-6943540cb84c&locations=opla", function(data) {
//opst at the end of url points to an empty json file []. If opst is changed to opla then it points to a json file with data.
$.each(data, function(key, value) {
var obj = value.Subject;
if ($('obj').val() === '') {
console.log("empty"); // with opst (json file with no data) this is expected but it is not shown.
} else {
console.log("not empty"); // with opla (json file with data) this is expected and it is shown correctly as expected.
}
});
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
尝试检查 json 文件中的内容。如果 json 文件有数据,则 console.log 显示“not empty”,但如果 json 文件没有数据(即只有 []),console.log 不会显示“empty”。代码是:
$(document).ready(function(){
$.getJSON("url/test.json",function(data) {
$.each(data, function(key,value) {
var obj = value.Subject;
// OPTION 1
if(obj=="") {
console.log("empty"); //This does not work
}
else {
console.log("not empty"); //This works
}
});
});
});
我尝试过的其他选择是:
// OPTION 2
if ($('obj').val() === '') {
console.log("empty"); //This does not work
} else {
console.log("not empty"); //This works
}
// OPTION 3
if(Object.keys(obj).length === 0 && obj.constructor === Object){
console.log("empty"); //This does not work
} else {
console.log("not empty"); //This works
}
但结果是一样的。看起来我在所有情况下都犯了同样的错误。需要帮助来识别错误。谢谢。
解决方案
所以你可以编写实用函数
function isEmpty(obj) {
for(var key in obj) {
if(obj.hasOwnProperty(key))
return false;
}
return true;
}
然后在ajax调用之后
if(data.isEmpty()) {
console.log("empty");
} else {
console.log("no empty");
}
推荐阅读
- php - mysqli_fetch_array 如何一次获取一行?
- c++ - C++菜鸟:计算两点之间的距离
- cython - mypy 不喜欢别名 Cython 类型
- file - WSDL 文件在颤动中上传?
- maven - Maven PMD 插件 3.5 使用 JDK13 失败
- php - PHP 购物车 // 显示不同行的结果
- xamarin.forms - Xamarin Forms 输入控件不显示绑定文本
- mysql - 如何获得每个学生的 Exam_name(Quarterly, Half-yearly, Final) 明智的总成绩?
- hadoop - 如何找出 CDH kerborized 集群中特定 kafka 主题的最大偏移值
- c# - 从最新的 Microsoft.AspNetCore.App 加载依赖项