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 valoresundefined
.
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.