检查ajax是否返回了有效的JSON字符串。

20 浏览
0 Comments

检查ajax是否返回了有效的JSON字符串。

这个问题已经有答案了

如何检查一个字符串是否为有效的JSON字符串?

我在SO上找到了一些类似的答案,但它们都不足够。我正在使用$.post()调用ajax,并期望返回json字符串。

许多事情可能发生(不正确的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格式?谢谢。

admin 更改状态以发布 2023年5月25日
0
0 Comments

JSON.parse() 怎么样?

$.post(
    'some_url.php',
    some_params,
    function(data) {
            try {
                console.log(JSON.parse(data));
            }
            catch(err) {
                console.log('error occured');
            }
    }
);

0