Tabla de Contenidos

04 - JSON

JSON (*JavaScript Object Notation*) es un formato de texto para intercambiar información estructurada entre aplicaciones. Es el formato estándar de las APIs REST: el cliente envía JSON y recibe JSON.

1. Sintaxis

{
  "id": 42,
  "title": "Código limpio",
  "available": true,
  "authors": ["Robert C. Martin"],
  "price": null,
  "publisher": {
    "name": "Anaya",
    "country": "ES"
  }
}

Elemento Sintaxis
Objeto { “clave”: valor }
Array [valor, valor]
Clave Siempre cadena entre comillas dobles
Tipos de valor cadena, número, booleano (true/false), null, objeto, array
Separadores Comas entre pares y entre elementos; sin coma final

Los valores pueden anidarse: un array de objetos, un objeto dentro de otro.

2. JSON en las APIs

Una petición a una API REST envía y recibe JSON:

POST /api/books
Content-Type: application/json

{ "title": "Código limpio", "authorId": 3 }

HTTP/1.1 201 Created
Content-Type: application/json

{ "id": 42, "title": "Código limpio" }

La cabecera Content-Type: application/json indica el formato del cuerpo.

3. Leer y escribir JSON desde TypeScript

// Parsear: texto JSON -> objeto
const response = await fetch("/api/books/42");
const book = await response.json();
console.log(book.title);

// Serializar: objeto -> texto JSON
const payload = JSON.stringify({ title: "Código limpio", authorId: 3 });
await fetch("/api/books", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: payload,
});

4. JSON en Java

En el backend, las librerías de Spring convierten automáticamente entre JSON y objetos Java cuando un controlador devuelve un objeto o recibe un @RequestBody; no se escribe el parseo a mano.

JSON no admite comentarios ni fechas como tipo nativo (se representan como texto ISO: “2026-10-12”). Y una clave debe ser única dentro de su objeto: repetirla es un error común al construir el JSON a mano.