检查JSON响应数据是否为空。

11
当在浏览器控制台中查看时,JSON响应为空时,它的样子就像这样:
{"data":{},"status":200,"config":{"method":"GET","transformRequest":[null],"transformResponse":[null],"jsonpCallbackParam":"callback","url":"http://url/form/BN217473","headers":{"Accept":"application/json, text/plain, */*"}},"statusText":"","xhrStatus":"complete"}

在Angular脚本中,我正在检查响应是否为空,但是检查没有捕捉到空响应,因为逻辑块从未执行。
if (response.data == '') {
    console.log("no data found");
}

我该如何检查我的响应不是空的?


这段代码使用Java编写,旨在将字符串对象转换为整数。它使用Integer.parseInt()方法执行此操作,并且如果字符串无法转换为整数,则会抛出NumberFormatException异常。在这种情况下,您可以通过处理该异常来恢复应用程序。 - Jeto
3个回答

27

尝试下面的代码片段:

if(!Object.keys(response.data).length){
     console.log("no data found");
 }

如果您得到的数据是空对象,例如data: {},那么您应该检查对象内是否有任何键。


对我不起作用。内容为 {} 但检查失败。长度为2。 - testing
2
好的,你需要使用一个对象而不是字符串。所以 JSON.parse(someString) 是你的朋友。但是 JSON.parse() 可能会失败... - testing
如果您想使用单个方法来检查字符串和JSON字符串是否为空或null,可以尝试以下代码:public static boolean isNotNullOrEmpty(Object str) { if (str == null) { return false; } else { if ("".equals(str)) { return false; }else if("{}".equals(str)) { return false; } } return true; } - Amulya Koppula

3
您可以使用 Object.keys(response.data).length === 0 来检查键/属性的数量,或者使用不那么高效的 JSON.stringify({}) == JSON.stringify(response.data)

2
如果您想检查响应是否为空,请尝试以下操作:
    if ( json.length == 0 ) {
    console.log("NO DATA!")
}

但我建议您使用lodash和他的isNil()方法或isEmpty()来检查您的对象是否为空或null或undefined。

谢谢


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接