Cómo mostrar JSON de forma bonita en JavaScript: guía completa

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Introducción: ¿Por qué el JSON parece un batido y cómo solucionarlo?

\n\n

¿Alguna vez has abierto la consola del navegador, has visto una línea kilométrica sin un solo espacio y has pensado: «¿Dónde está el error?»? Es un clásico del género. JSON es un lenguaje universal de intercambio de datos, pero en bruto se lee más o menos como las instrucciones de un microondas en japonés. Especialmente cuando hay muchos datos: objetos anidados, arrays, cadenas largas.

\n\n

Afortunadamente, en JavaScript hay herramientas integradas que convierten ese «batido» en una belleza ordenada y estructurada. El proceso se llama pretty-print JSON (o «formateo bonito»). En este artículo, analizaremos todas las formas: desde el básico JSON.stringify hasta soluciones personalizadas avanzadas. Aprenderás no solo a leer JSON, sino a hacerlo con comodidad.

\n\n

El artículo está escrito para pythonlib.ru, un recurso educativo donde nos encantan las explicaciones claras y los ejemplos vivos. ¡Allá vamos!

\n\n

¿Qué es el pretty-print JSON y para qué sirve?

\n\n

Pretty-print (o prettify) es el proceso de formatear datos estructurados (JSON, XML, YAML) con sangrías, saltos de línea y alineación. Visualmente, se ve como un código bien formateado, no como una larga línea única.

\n\n

¿Para qué sirve?

\n
    \n
  • Depuración (debugging). Ves la estructura del objeto: dónde están las claves, los objetos anidados, los arrays.
  • \n
  • Lectura de logs. En la consola del navegador o en logs del servidor, el JSON formateado salva la vista.
  • \n
  • Documentación. Los ejemplos de JSON en la documentación siempre están en pretty-print.
  • \n
  • Aprendizaje. A los principiantes les resulta más fácil entender la estructura de datos cuando está dividida en niveles.
  • \n
\n\n

En JavaScript, hay dos formas principales de obtener un JSON bonito: el integrado JSON.stringify y bibliotecas de terceros (por ejemplo, pretty-js). Pero empecemos por lo básico.

\n\n

Método 1: JSON.stringify() con parámetros (el más popular)

\n\n

Seguramente conoces el método JSON.stringify(). Convierte un objeto en una cadena JSON. Pero tiene un segundo y tercer parámetros que hacen maravillas.

\n\n

Sintaxis

\n
JSON.stringify(value, replacer, space)
\n\n
    \n
  • value — tu objeto o array.
  • \n
  • replacer — una función o array para filtrar claves (a menudo null).
  • \n
  • space — la cantidad de espacios para la sangría (o una cadena, por ejemplo "\\t" para tabulación).
  • \n
\n\n

Ejemplo 1: Pretty-print básico con espacios

\n
const user = {\n  name: "Alexéi",\n  age: 30,\n  skills: ["JavaScript", "Python", "SQL"],\n  address: {\n    city: "Moscú",\n    zip: 101000\n  }\n};\n\n// Sin formato — una sola línea\nconsole.log(JSON.stringify(user));\n// {"name":"Alexéi","age":30,"skills":["JavaScript","Python","SQL"],"address":{"city":"Moscú","zip":101000}}\n\n// Con formato — ¡hermoso!\nconsole.log(JSON.stringify(user, null, 2));\n
\n\n

Resultado en la consola:

\n
{\n  "name": "Alexéi",\n  "age": 30,\n  "skills": [\n    "JavaScript",\n    "Python",\n    "SQL"\n  ],\n  "address": {\n    "city": "Moscú",\n    "zip": 101000\n  }\n}\n
\n\n

Observa: las sangrías de 2 espacios hicieron la estructura legible. Puedes usar 4 espacios o tabulación ("\\t").

\n\n

Ejemplo 2: Uso de replacer para filtrar

\n

A veces es necesario mostrar solo una parte de los datos. El segundo parámetro replacer puede ser un array de claves.

\n
const filtered = JSON.stringify(user, ["name", "skills"], 2);\nconsole.log(filtered);\n// {\n//   "name": "Alexéi",\n//   "skills": [\n//     "JavaScript",\n//     "Python",\n//     "SQL"\n//   ]\n// }\n
\n\n

O una función:

\n
const replacerFunc = (key, value) => {\n  if (key === "age") return undefined; // excluimos                

Blogs

Book Recommendations