json - 如何在 AJAX 中处理 AJAX 请求返回的空白 JSON 数据

标签 json jquery

我有一个 $.ajax 函数正在调用 asp.net Webmethod。

当没有返回数据时,我想用一个窗口提醒用户。

这是我在 FireBug 中看到的返回的 JSON 字符串:

{"d": "[]"}

以下是该函数的片段 -

success: function (msg) {
    var data = eval(msg.d);
    var i = 0;
    var Name;
    for (i = 0; i < data.length; i++) {
        if (data.length == 0) {
            alert('oops no data has been returned sorry.');
        } else {
            //do the good stuff
        }
    }
},

最佳答案

移动if-else for 之外的声明循环和 for else 内循环分支:

if (data.length == 0) {
    alert('oops no data has been returned sorry.');
} else {
    for (i = 0; i < data.length; i++) {
        //do the good stuff
    }
}

在您的代码中,if如果 data 则语句永远不会被执行自 for 以来为空循环体永远不会执行( 0 < 0false )。


其他问题:

我建议修复您的 JSON 生成过程。如果msg.d应该包含数组,那么不要为其分配字符串。您的 JSON 应该类似于

{"d": []}

看起来您以某种方式对数据进行了双重编码。

如果你不这样做,我至少会使用JSON.parse而不是eval .

关于json - 如何在 AJAX 中处理 AJAX 请求返回的空白 JSON 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15907399/

相关文章:

javascript - Jquery/PHP : passing JSON data with Ajax ends up truncated

python - 我应该在我的 setup.py 中有条件地要求 simplejson 吗?

javascript - 带参数的 Durandal 路由

json - AFNetworking + JSON + 进度下载

javascript - AngularJS 链接 $http get 请求

javascript - jquery 函数出现 Typeof 错误

jquery - jQueryUI 组合框上的 KnockoutJS 数据绑定(bind)值

javascript - 单击 href 更新 iFrame src

php - 使用 JSON 和 PHP 创建链接

java - 使用 Gson 进行 JSON 解析