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

150
Vistas
JSON.parse un objeto indefinido del almacenamiento local

Tengo un elemento de LocalStorage que estoy analizando en una variable como esta:

 let resp = JSON.parse(localStorage.getItem('someKey'));

A veces, el problema es que localStorage puede no tener el valor y puede devolver un objeto indefinido para analizar, lo que da como resultado el siguiente error:

 SyntaxError: Unexpected token U in JSON at position 0

He intentado esto:

 let resp = localStorage.getItem('someKey') ? JSON.parse(localStorage.getItem('someKey')) : null;

Pero creo que esta no es una forma muy óptima de manejar esto, cualquier sugerencia es bienvenida.

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

tu solución está bien, si quieres que sea más corta, puedes probar esto

 let resp = JSON.parse(localStorage.getItem('someKey') || null)

Así es como funciona:

  1. localStorage.getItem('someKey') || null evaluará primero el lado izquierdo del código, si localStorage.getItem('someKey') devuelve una cadena undefined o '' vacía, devolverá el código del lado derecho que es null

  2. Luego, JSON.parse(null) devolverá null en lugar de error

about 4 years ago · Juan Pablo Isaza Denunciar

0

Podrías intentar algo como esto:

 let resp = null; const storedResp = localStorage.getItem('someKey'); if (storedResp) { try { resp = JSON.parse(storedResp); } catch (e) {} }

Esto no debería generar ningún error, ya que solo lo analiza en JSON si existe, y luego detecta cualquier error si falla el análisis de JSON. Te quedas con resp igual a null o los datos almacenados como JSON, sin errores en ningún caso.

Como han dicho otros, su solución actual está bien, pero hay dos problemas potenciales con ella tal como está escrito:

  • Accede al elemento en localStorage dos veces, lo que puede ser innecesariamente lento si se trata de un objeto grande.
  • Muchas empresas prefieren (o exigen) que ajuste las líneas a 80 caracteres y su solución actual tiene 96 caracteres.
about 4 years ago · Juan Pablo Isaza 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