Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

449
Vistas
¿Por qué falla JSON.parse con la cadena vacía?

Por que:

 JSON.parse('');

producir un error?

 Uncaught SyntaxError: Unexpected end of input

¿No sería más lógico si simplemente devolviera null ?

EDITAR: Esto no es un duplicado de la pregunta vinculada. Si bien el tema de json válido mínimo está relacionado con esta pregunta, no llega al "por qué".

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Como una cadena vacía no es un JSON válido, sería incorrecto que JSON.parse('') devuelva un null porque "null" es un JSON válido. p.ej

 JSON.parse("null");

devuelve null . Sería un error que JSON no válido también se analizara como nulo.

Si bien una cadena vacía no es JSON válido, dos comillas son JSON válidos. Esta es una distinción importante.

Es decir, una cadena que contiene dos comillas no es lo mismo que una cadena vacía.

 JSON.parse('""');

analizará correctamente (devolviendo una cadena vacía). Pero

 JSON.parse('');

no lo haré

Las cadenas JSON mínimas válidas son

El objeto vacío '{}'

La matriz vacía '[]'

La cadena que está vacía '""'

Un número, por ejemplo '123.4'

El valor booleano verdadero 'true'

El valor booleano falso 'false'

El valor 'null'

over 4 years ago · Santiago Trujillo Denunciar

0

Usa try-catch para evitarlo:

 var result = null; try { // if jQuery result = $.parseJSON(JSONstring); // if plain js result = JSON.parse(JSONstring); } catch(e) { // forget about it :) }
over 4 years ago · Santiago Trujillo Denunciar

0

JSON.parse espera una notación válida dentro de una cadena, ya sea object {} , array [] , string "" o tipos de números (int, float, doubles).

Si existe la posibilidad de que lo que se está analizando sea una cadena vacía, el desarrollador debe comprobarlo.

Si estuviera integrado en la función, agregaría ciclos adicionales, dado que se espera que las funciones integradas sean extremadamente eficientes, tiene sentido no programarlas para el caso de carrera.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda