Eu recebo esse erro "token inesperado de sintaxe não detectado U" quando executo minha página no chrome. E no firefox eu recebo "JSON.parse: caráter inesperado". Estou retornando os dados json de um arquivo php e a string json retornada é válida. Eu verifiquei com http://jsonlint.com/ . Qualquer ajuda seria apreciada ... Obrigado.
Aqui está a string JSON retornada
[
["1","Pan Africa Market","\"1521 1st Ave, Seattle, WA\"","47.608941","-122.340145","restaurant"],
["2","The Melting Pot","14 Mercer St, Seattle, WA","47.624562","-122.356442","restaurant"],
["3","Ipanema Grill","1225 1st Ave, Seattle, WA","47.606366","-122.337656","restaurant"],
["4","Sake House","230 1st Ave, Seattle, WA","47.612825","-122.34567","bar"],
["5","Crab Pot","1301 Alaskan Way, Seattle, WA","47.605961","-122.34036","restaurant"],
["6","Mexican Kitchen","2234 2nd Ave, Seattle,WA","47.613975","-122.345467","bar"],
["7","Wingdome","1416 E Olive Way, Seattle, WA","47.617215","-122.326584","bar"],
["8","Piroshky Piroshky","1908 Pike pl, Seattle, WA","47.610127","-122.342838","restaurant"]
]
\"
a saída.Respostas:
Esse erro é normalmente visto quando o valor atribuído
JSON.parse
é realmenteundefined
. Portanto, eu verificaria o código que está tentando analisar isso - provavelmente você não está analisando a string real mostrada aqui.fonte
"undefined"
como uma sequência em vez do literalundefined
. Passei apenas 30 minutos descobrindo isso.u
é que eleundefined
é coagido em uma sequência (porque uma sequência é o que o JSON.parse espera).Unexpected token N in JSON at position...
eo problema foi umdouble
valor:NaN
Eu estava recebendo essa mensagem durante a validação (no projeto MVC). Para mim, a adição do elemento ValidationMessageFor corrigiu o problema.
Para ser mais preciso, a linha número 43 em jquery.validate.unobtrusive.js causou o problema:
fonte
$("form :input").valid();
para acionar a validação. Mas, aparentemente, houve um erro em um campo oculto sem um ValidationMessageFor. Corrigido alterando para$("form :input:visible").valid();
O parâmetro para o JSON.parse pode não estar retornando nada (ou seja, o valor fornecido para o JSON.parse é
undefined
)!Aconteceu comigo enquanto eu estava analisando o código de solidez Compilado de um arquivo xyz.sol.
que foi escrito incorretamente como
que não estava retornando nada!
fonte
O caso mais comum desse erro acontecer é usar o modelo que está gerando o controle e depois mudar a maneira
id
e / ouname
está sendo gerado pela 'substituição' do modelo padrão por algo comoe depois esquecendo de mudar
ValidationMessageFor
paraEspero que isso economize algum tempo.
fonte
Ocorreu esse erro ao executar uma condição de localização em um JSONArray dentro de um loop for. O problema que enfrentei foi o resultado de um dos valores no loop for retornando nulo. Por isso, quando tentei acessar uma propriedade em que ela falhou.
Portanto, se você estiver fazendo alguma coisa no JSONArrays em que não tenha certeza da fonte de dados e de sua integridade, acho um bom hábito lidar com exceções nulas e indefinidas nesse caso.
Corrigi-o verificando nulo no valor retornado de localização no JSONArray e manipulando exceções adequadamente.
Achei que isso poderia ajudar.
fonte
No meu caso, ele estava tentando chamar JSON.parse () em uma variável AJAX antes que o XHRResponse voltasse. POR EXEMPLO:
Substituí isso por um exemplo fora do site jQuery por $ .get :
fonte
Apenas no caso de você não entender
por exemplo, é que vamos dizer que eu tenho um JSON STRING ... AINDA NÃO UM OBJETO JSON OU ARRAY.
por isso, se em javascript u analisar a string como
Ótimas respostas acima
fonte
Esta resposta é para as pessoas que estão enfrentando esse erro ao trabalhar com o Upload de arquivos .
Estávamos usando middleware para criptografia baseada em token - descriptografia e encontramos o mesmo erro.
A seguir, nosso código no arquivo de rota:
aqui estávamos chamando o middleware antes da função de upload e isso estava causando o erro. Então, quando mudamos para isso, funcionou.
fonte
Esta não é uma tarefa difícil. Esse problema também ocorre no meu site, você deve alterar os arquivos js com a melhor ordem. Porque no local em que você está usando a Análise JSON, desta vez, seus arquivos JS não são carregados. EXEMPLO #
mudar para
fonte
Bem, para todos que realmente não conseguem encontrar o erro em nenhum lugar do seu código, nem "indefinido como diz no armazenamento local nem nulo" .. basta apenas comentar seu código e escrever outro que realmente remova o item no armazenamento local. .depois disso, você pode comentar ou excluir o código atual e redefinir novamente o anterior simplesmente descomentando-o (se você não excluir o t ... se o fez, poderá escrevê-lo novamente :))
O console mostrará nulo e que .. redefina seu código novamente se não funcionar, cara! Você tem erros.
Desculpe pelo meu Inglês!
fonte
Eu estava recebendo esse erro, quando eu estava usando a mesma variável para json string e analisado json:
Alterei a função para:
Agora esse erro foi embora.
fonte