objetos-y-json-en-javascript

Objetos y JSON en JavaScript

JSON es un formato de intercambio de datos ligero, fácil de leer para seres humanos, y fácil de parsear y generar para máquinas.

La relación entre y los objetos JavaScript es muy estrecha. De hecho, JSON significa JavaScript Object Notation (así que imaginar lo cercana que es su relación 😉).

Trabajar con JSON con JavaScript es una tarea común, ya que JSON es un formato de ampliamente utilizado en aplicaciones web y APIs para el intercambio de datos.

Por tanto, vamos a ver los métodos que tenemos para trabajar con ellos.

Estructura de JSON

En JavaScript, JSON se representa como una cadena de texto que sigue una estructura similar a la de un objeto o array JavaScript, pero en formato de texto plano.

JSON utiliza una sintaxis similar a los objetos de JavaScript, pero hay algunas diferencias clave:

  • Las claves deben estar entre comillas dobles.
  • Las propiedades no pueden ser funciones, Symbols, o valores undefined.

Por ejemplo,

{
    "nombre": "Luis",
    "edad": 30,
    "habilidades": ["JavaScript", "Python", "Java"]
}
const persona = {
    nombre: "Luis",
    edad: 30,
    habilidades: ["JavaScript", "Python", "Java"],
    saludar: function() { //... }
}

Los valores de las propiedades pueden ser cadenas, números, arrays, objetos, true, false o null,

Conversión entre Objetos y JSON

JavaScript proporciona métodos integrados para convertir objetos a JSON y viceversa: JSON.stringify() y JSON.parse().

Objeto a JSON

Para convertir un objeto de JavaScript a una cadena JSON, se utiliza JSON.stringify(). Este método toma un objeto como argumento y devuelve su representación en formato JSON.

const persona = {
  nombre: 'Juan',
  edad: 30,
  ciudad: 'Madrid'
};

const personaJSON = JSON.stringify(persona);
console.log(personaJSON);
// Resultado: {"nombre":"Juan","edad":30,"ciudad":"Madrid"}

En este ejemplo, persona es un objeto JavaScript que se convierte en una cadena JSON usando JSON.stringify().

JSON.stringify() no puede manejar propiedades que sean funciones, undefined o símbolos. Si el objeto tiene estas propiedades se omitirán en la cadena JSON resultante.

JSON a un Objeto

Para convertir una cadena JSON a un objeto JavaScript, utilizamos el método JSON.parse().

const personaJSON = '{"nombre":"Juan","edad":30,"ciudad":"Madrid"}';

const persona = JSON.parse(personaJSON);
console.log(persona);
// Resultado: { nombre: 'Juan', edad: 30, ciudad: 'Madrid' }

En este ejemplo, personaJSON es una cadena JSON que se convierte en un objeto JavaScript usando JSON.parse().

Errores al trabajar con JSON

Al convertir JSON a objetos JSON.parse(), pueden ocurrir errores si intentamos parsear un JSON no válido.

const jsonInvalido = 'noEsJSON';

try {
  const objeto = JSON.parse(jsonInvalido);
  console.log(objeto);
} catch (error) {
  console.error('Error al parsear JSON:', error.message);
}
// Resultado: Error al parsear JSON: Unexpected token o in JSON at position 0

En este ejemplo, jsonInvalido no es una cadena JSON válida, por lo que JSON.parse() arrojará un error que podemos capturar y manejar.