• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

113
Views
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.

over 3 years ago · Juan Pablo Isaza
2 answers
Answer question

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

over 3 years ago · Juan Pablo Isaza Report

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.
over 3 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error