我正在使用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?
答案 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所说的那样。