Qué significa SyntaxError: Unexpected end of JSON input y cómo solucionarlo
Referencia del error
SyntaxError: Unexpected end of JSON input
Lenguaje
Severidad
MediaCuándo ocurre
Este SyntaxError es lanzado por JSON.parse() cuando la cadena que recibe no es JSON válido.
Posibles soluciones
Valida la cadena antes de parsearla: verifica que no esté vacía y envuelve JSON.parse() en un try/catch. Al obtener JSON de una API, usa response.json() en lugar de parsear manualmente response.text(), ya que maneja el Content-Type y los casos de cuerpo vacío de forma más elegante.
Errores relacionados
Más detalles
Este SyntaxError es lanzado por JSON.parse() cuando la cadena que recibe no es JSON válido. 'Unexpected end of input' específicamente significa que la cadena fue cortada antes de que la estructura JSON estuviera completa, o que la cadena estaba vacía.
Por qué ocurre
- •Parsear una cadena vacía, por ejemplo de un fetch fallido que no devolvió cuerpo.
- •Una respuesta de red fue truncada antes de ser recibida completamente.
- •Un archivo o campo de base de datos que almacena JSON fue guardado accidentalmente vacío o escrito parcialmente.
- •La concatenación o interpolación de cadenas produjo una cadena JSON malformada.
Posibles soluciones
Valida la cadena antes de parsearla: verifica que no esté vacía y envuelve JSON.parse() en un try/catch. Al obtener JSON de una API, usa response.json() en lugar de parsear manualmente response.text(), ya que maneja el Content-Type y los casos de cuerpo vacío de forma más elegante.
Ejemplos
Código que causa el error
const raw = ""; // empty string from a failed fetch
const data = JSON.parse(raw);
console.log(data);Error en la terminal
SyntaxError: Unexpected end of JSON input
Código corregido
const raw = "";
try {
const data = JSON.parse(raw);
console.log(data);
} catch (err) {
if (err instanceof SyntaxError) {
console.error("Invalid JSON received:", raw);
}
}Practica en inglés
¿Cómo le explicarías un SyntaxError: Unexpected end of JSON input a un compañero dev? Elige la frase correcta:
"I hit an error...
¿Listo para practicar tu inglés en el trabajo?
Lingua-e tiene ejercicios interactivos basados en conversaciones reales de developers: standups, code reviews, retrospectivas y más. Practica hasta que salga solo.
Prueba Lingua-e gratis