如何检查Ajax返回JSON的正确性

时间:2012-03-29 20:32:46

标签: javascript jquery ajax json

我使用ajax运行MySQL查询和echo json_encode结果,这样我就可以得到一个JSON对象:

$.ajax({
    url: phpUrl,
    data: command,
    dataType: 'json',
    async: true,
    success: function(jsonData) {
        //XXX
    }

JSON对象应该是:{cols: [XXXX], rows: [XXXX]}

有时MySQL查询会出现错误信息,因此返回的JSON对象无效。如何确定返回的JSON对象是否有效?

修改

http://api.jquery.com/jQuery.ajax/中,它说“以严格的方式解析JSON数据;拒绝任何格式错误的JSON并抛出解析错误”。如何处理解析错误?

2 个答案:

答案 0 :(得分:1)

如果MySQL抛出错误,只需返回某种解释它的JSON,例如:

// do mysql query
if (mysql_errno()) {
  echo json_encode(array(
    'error' => true,
    'errorno' => mysql_errno(),
    'message' => mysql_error()
  ));
} else {
  //echo original json
}

然后你的ajax函数只查找'error'键,如果它存在并且尝试报告错误。

答案 1 :(得分:1)

这样的事情应该有效:

$.ajax({
    url: phpUrl,
    data: command,
    dataType: 'json',
    async: true,
    success: function(jsonData) {
        //XXX
    },
    error:function(xhr,err){
        if (err=='parsererror') alert('invalid json');
    }
);