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

167
Vistas
¿Cómo manejar objetos de JavaScript (JSON analizado) que contienen nulos?

Estoy usando JavaScript/jQuery para obtener datos como json a través de una llamada ajax. Luego, el json se analiza en un objeto de JavaScript. Llamemos al objeto var .

Ahora quiero asignar un valor del objeto a una variable:

 let publicationDay = val["work-summary"][0]["publication-date"]["day"]["value"]

Esto funciona, siempre que exista este valor. Sin embargo, para algunos resultados, el objeto contiene un null no para ["value"] sino para ["day"] (como se muestra a continuación)

 val["work-summary"][0]["publication-date"]["day"] // is null

En este caso, let publicationDay = val["work-summary"][0]["publication-date"]["day"]["value"] generará el siguiente error:

 Uncaught TypeError: val['work-summary'][0]['publication-date'].day is null

y se detiene la ejecución del código. Claro, puedo verificar si val["work-summary"][0]["publication-date"]["day"] === null , pero ¿cuál sería la forma más elegante de manejar este caso? Tal vez, en el futuro incluso

 val['work-summary'][0]['publication-date'] // is null

puede ocurrir y mi verificación de null no funciona.

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

0

Depende en gran medida de su contexto, pero aquí hay algunos ejemplos.

 const publicationDate = val['work-summary'][0]['publication-date']; // usage console.log(publicationDate && publicationDate.day && publicationDate.day.value); // very basic console.log(publicationDate?.day?.value); // optional chaining, better if supported by your environment (should be) console.log(get(publicationDate, “day.value”)); // lodash get()
about 4 years ago · Juan Pablo Isaza Denunciar

0

Recomendaría probar el encadenamiento opcional. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Optional_chaining

Suponiendo que cualquiera de esos valores podría ser nulo:

 let publicationDay = val?.["work-summary"]?.[0]?.["publication-date"]?.["day"]?.["value"]

Establecerá la variable en day.value o undefined

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