Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 检查ajax是否返回了有效的json字符串_Jquery_Json_Ajax - Fatal编程技术网

Jquery 检查ajax是否返回了有效的json字符串

Jquery 检查ajax是否返回了有效的json字符串,jquery,json,ajax,Jquery,Json,Ajax,我发现了两个类似的答案,但都不够。我使用$.post()调用ajax并导出返回的json字符串 很多事情都可能发生(不正确的json格式、服务器端错误、连接丢失等),我正在尝试测试返回的字符串是否有效 我检查了这个,但它使用的是eval,这是不安全的 这是我现在写的代码: $.post( 'some_url.php', some_params, function(data) { var is_JSON = true; try {

我发现了两个类似的答案,但都不够。我使用
$.post()
调用ajax并导出返回的json字符串

很多事情都可能发生(不正确的json格式、服务器端错误、连接丢失等),我正在尝试测试返回的字符串是否有效

我检查了这个,但它使用的是
eval
,这是不安全的

这是我现在写的代码:

$.post(
    'some_url.php',
    some_params,
    function(data) {
        var is_JSON = true;

        try {
            data = $.parseJSON(data);
        }
        catch(err) {
            is_JSON = false;
        }

        if (is_JSON && (data !== null)) {
            console.log('correct json format');

            if (data.result === 'OK') {
                console.log('result: OK');
            }
            else if (data.result === 'ERR') {
                console.log('result: ERR');
            }
        }
        else {
            try {
                console.log('incorrect json format');
            }
            catch(err) {
                console.log('error occured');
            }
        }
    }
);
如果返回的字符串是正确的json格式,我如何简单地(并且足够)检查?谢谢。

怎么样

怎么样


我认为你做得对。检查这个答案被接受的答案是不正确的,但是这个答案(大多数选票)应该是正确的,是吗?这就是我要做的。这是另一个类似的例子-@Legionar你必须选择最上等的答案。嗯,我认为你的
尝试捕捉动作太过火了。您实际上不需要在
console.log()上执行此操作语句。我认为你做得对。检查这个答案被接受的答案是不正确的,但是这个答案(大多数选票)应该是正确的,是吗?这就是我要做的。这是另一个类似的例子-@Legionar你必须选择最上等的答案。嗯,我认为你的
尝试捕捉动作太过火了。您实际上不需要在
console.log()上执行此操作语句。
$.post(
    'some_url.php',
    some_params,
    function(data) {
            try {
                console.log(JSON.parse(data));
            }
            catch(err) {
                console.log('error occured');
            }
    }
);