/ / Como saber se os dados de retorno são Json ou String em jQuery e PHP? - php, jquery

Como saber se os dados de retorno são Json ou String em jQuery e PHP? - php, jquery

Eu quero verificar no lado do cliente (jQuery) se os dados de retorno de uma função PHP são objeto Json ou String para atribuir função diferente.

Respostas:

45 para resposta № 1

parseJson do jQuery irá gerar uma exceção seo json não está no formato correto. Você poderia quebrar sua chamada em um bloco try catch. (Mas lembre-se que ter exceções no fluxo do seu código normal é uma má prática)

data = "{}";
try {
json = $.parseJSON(data);
} catch (e) {
// not json
}

Você também pode usar o nativo JSON.parse() método que lança um SyntaxError exceção

Se você está esperando um JSON ruim como parte do seu fluxo de trabalho normal do programa, então você pode verificá-lo com o regex primeiro, A resposta do Mic é bastante sólida Mas no seu caso, o PHP deve sempre gerar json válido sob condições normais. Se o seu inválido provavelmente é um bug no seu software


7 para resposta № 2
try {
jQuery.parseJSON( json )
//must be valid JSON
} catch(e) {
//must not be valid JSON
}

6 para resposta № 3

Os dados de retorno são sempre uma cadeia (ou seja, uma sequência de caracteres). Mas, se você disser jQuery você espera uma resposta json, ele tentará converter uma string em um objeto javascript para você.
Não há protocolo de rede dedicado para transferir objetos javascript pela internet.


-1 para resposta № 4

Em javascript, você pode usar tipo de