如何检查JavaScript中返回的函数是什么?

时间:2011-07-13 14:22:02

标签: javascript jquery json

我正在使用JSON函数检查用户名是否可用或已被用作。

该函数返回此值(如果用户名可用):

{"error":null,"jsonrpc":"2.0","id":1,"result":true}

或如果不是:

{"error":null,"jsonrpc":"2.0","id":1,"result":false}

所以要根据结果执行一个动作,我需要先检查函数返回的内容。当我尝试这个时:

                if (JSON.stringify(result) == '{"error":null,"jsonrpc":"2.0","id":1,"result":true}') {
                    avaliability.html('avaliabile');
                }
                else if (JSON.stringify(result) == '{"error":null,"jsonrpc":"2.0","id":1,"result":false}') {
                    avaliability.html('not avaliabile');
               }

它不起作用。也没有这样做:

                    if (JSON.stringify(result).search('false') != -1) {
                        alert('not avaliabile');
                    }
                    else if (JSON.stringify(result).search('true') != -1) {
                        alert('avaliabile');
                    }

或者这个:

                    if (JSON.stringify(result) == false) {
                        alert('not avaliabile');
                    }
                    else if (JSON.stringify(result) == true) {
                        alert('avaliabile');
                    }

如何检查JSON函数是返回true还是false?

2 个答案:

答案 0 :(得分:3)

您的代码完全错误。

您应该检查result.result是否为真。

答案 1 :(得分:2)

JSON.parse('{"error":null,"jsonrpc":"2.0","id":1,"result":false}').result返回false,JSON.parse('{"error":null,"jsonrpc":"2.0","id":1,"result":true}').result返回true,因此实际代码应如下所示:

if(JSON.parse(result).result == true){
    alert('Available')
}else{
    alert('Not available')
}

当然,考虑到result是字符串。如果它已经是Object(已解析),那么你应该像SLaks所说的那样。