JSON变量返回正确但值是未定义的?

时间:2011-09-24 03:50:33

标签: json variables

这是我通过jquery,

获取ajax请求的成功函数
success: function(response) {

    if (response.error == undefined) {

    alert(response);
    }
$('#' + id).after('<div id="emailMsg" class="error">' + response.error + '</div>');

}

因为该值以未定义的形式返回,它会提醒我返回的JSON是......

{"error":true}

为什么会发生这种情况,当我调用response.error时,我应该得到真或假。

更新

变量以字符串形式返回,而不是布尔值,我的json_encode();

    if (!$q -> rowCount()) {

    echo json_encode(array('error' => false));
}
else {

    echo json_encode(array('error' => true));
}

2 个答案:

答案 0 :(得分:1)

您可能想尝试将dataType: 'json'参数添加到$.ajax来电。这将确保jQuery将负责将响应作为您的对象。

答案 1 :(得分:0)

您需要先将字符串中的JSON解析为JavaScript对象。

可以使用JSON.parse(response)完成此操作。在没有本机JSON的旧浏览器中,eval(response)也可以工作,但不太安全。