Как проверить, что функция вернула в JavaScript? - PullRequest
0 голосов
/ 13 июля 2011

Я использую функцию 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 ]

3 голосов
/ 13 июля 2011

Ваш код совершенно неверный.

Вы должны просто проверить, является ли result.result верным.

2 голосов
/ 13 июля 2011

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 это строка. Если это уже объект (проанализированный), то вы должны сделать, как сказал SLaks.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...