Recibo este error "sintaxis inesperada token U inesperado" cuando ejecuto mi página en Chrome. Y en firefox me sale, "JSON.parse: carácter inesperado". Estoy devolviendo los datos json de un archivo php y la cadena json devuelta es válida. Lo revisé con http://jsonlint.com/ . Cualquier ayuda será apreciada, gracias.
Aquí está la cadena JSON devuelta
[
["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"]
]
\"
en la salida.Respuestas:
Ese error se ve normalmente cuando el valor dado a
JSON.parse
es en realidadundefined
. Entonces, verificaría el código que está tratando de analizar esto, lo más probable es que no esté analizando la cadena real que se muestra aquí.fuente
"undefined"
como una cadena en lugar del literalundefined
. Acabo de pasar 30 minutos descubriendo eso.u
es queundefined
se convierte en una cadena (porque una cadena es lo que JSON.parse espera).Unexpected token N in JSON at position...
y el problema fue undouble
valor:NaN
Recibí este mensaje mientras validaba (en el proyecto MVC). Para mí, agregar el elemento ValidationMessageFor solucionó el problema.
Para ser precisos, la línea número 43 en jquery.validate.unobtrusive.js causó el problema:
fuente
$("form :input").valid();
para activar la validación. Pero aparentemente recibió un error en un campo oculto sin ValidationMessageFor. Solucionado cambiando a$("form :input:visible").valid();
¡El parámetro para JSON.parse puede no devolver nada (es decir, el valor dado para JSON.parse es
undefined
)!Me sucedió mientras analizaba el código de solidez Compilado de un archivo xyz.sol.
que estaba mal escrito como
que no devolvía nada!
fuente
El caso más común de que ocurra este error es usar una plantilla que genera el control y luego cambia la forma
id
y / oname
se genera al 'anular' la plantilla predeterminada con algo comoy luego olvidando cambiar
ValidationMessageFor
aEspero que esto te ahorre algo de tiempo.
fuente
Experimenté este error cuando ejecuté una condición de búsqueda en un JSONArray dentro de un bucle for. El problema que enfrenté fue el resultado de que uno de los valores en el bucle for devuelve nulo. Por lo tanto, cuando intenté acceder a una propiedad que falló.
Entonces, si está haciendo algo dentro de JSONArrays donde no está seguro de la fuente de datos y su integridad, creo que es un buen hábito tratar con excepciones nulas e indefinidas en este caso.
Lo arreglé comprobando si el valor devuelto de find en el JSONArray era nulo y manejando las excepciones de manera adecuada.
Pensé que esto podría ayudar.
fuente
En mi caso, estaba tratando de llamar a JSON.parse () en una variable AJAX antes de que XHRResponse volviera. P.EJ:
Reemplacé eso con un ejemplo del sitio jQuery por $ .get :
fuente
Solo en caso de que no entendieras
por ejemplo, digamos que tengo una JSON STRING ... NO ES UN OBJETO O ARRAY JSON.
así que si en JavaScript analiza la cadena como
Grandes respuestas arriba
fuente
Esta respuesta es para las personas que enfrentan este error mientras trabajan con File Upload .
Estábamos usando middleware para el cifrado basado en tokens - descifrado y encontramos el mismo error.
El siguiente fue nuestro código en el archivo de ruta:
aquí estábamos llamando al middleware antes de la función de carga y eso estaba causando el error. Entonces, cuando lo cambiamos a esto, funcionó.
fuente
Esta no es una tarea difícil. Ese problema también ocurre en mi sitio, deberías tener que cambiar tus archivos js por orden superior. Porque en el lugar donde está utilizando el análisis JSON, esta vez sus archivos JS no están cargados. EJEMPLO #
cambiar a
fuente
Bueno, para todos los que realmente no pueden encontrar el error en cualquier parte de su código, ni "indefinido como dice en el almacenamiento local ni nulo" ... simplemente comente su código y escriba otro que realmente elimine el elemento en el almacenamiento local. . después de eso, puede comentar o borrar el código actual y restablecer nuevamente el anterior simplemente descomentando (si no lo borra ... si lo hizo, puede volver a escribirlo :))
La consola se mostrará nula y eso ... restablecerá tu código nuevamente si no funciona, amigo, tienes errores.
¡Lo siento por mi ingles!
fuente
Recibía este error, cuando estaba usando la misma variable para json string y json analizado:
Cambié la función a:
Ahora este error desapareció.
fuente