Cómo formatear, validar y minificar JSON

Tres operaciones para trabajar con un documento JSON, con un ejemplo que conserva un identificador numérico grande.

Formatear, validar y minificar

Formatear añade sangría y saltos de línea para distinguir objetos, arrays y valores. Validar comprueba si el texto sigue la sintaxis JSON admitida, sin generar otro documento. Minificar elimina los espacios innecesarios de la estructura para obtener un texto más compacto. Ninguna operación comprime el archivo como lo haría ZIP ni garantiza que los datos cumplan las reglas de una aplicación.

Abre el formateador JSON para probar las tres operaciones con un ejemplo o con tu propio texto.

Un ejemplo con un número grande

Este documento compacto contiene un identificador, un booleano y un array:

{"nombre":"Utilavia","id":9007199254740993,"activo":true,"etiquetas":["texto","imágenes"]}

Con una sangría de dos espacios, el resultado es:

{
  "nombre": "Utilavia",
  "id": 9007199254740993,
  "activo": true,
  "etiquetas": [
    "texto",
    "imágenes"
  ]
}

El identificador sigue siendo 9007199254740993. Un flujo que convierta primero ese valor a un número ordinario de JavaScript puede redondearlo, porque supera su rango de enteros seguros. Este formateador conserva la escritura original de cada número, incluidos decimales, ceros finales, exponentes y -0. No realiza cálculos con esos números.

Las propiedades conservan su orden de entrada, incluso si sus nombres son números escritos como cadenas. Los arrays también mantienen sus posiciones. Las cadenas conservan su valor, pero un escape como "\u0061" puede convertirse en "a"; el resultado no es una copia idéntica byte a byte del original.

Errores habituales de sintaxis

JSON exige comillas dobles para las claves y las cadenas. {'nombre':'Ana'} no es JSON válido. Tampoco lo son {"nombre":"Ana",} por la coma final, ni un documento con comentarios. Los literales son true, false y null, en minúsculas; undefined, NaN e Infinity no forman parte de JSON.

En los números, el separador decimal es el punto: 1.5 es válido, mientras que 1,5 no representa un único número JSON. Los números no llevan separadores de miles ni ceros iniciales como 01. Esto es distinto de la entrada con coma decimal de las calculadoras de Utilavia.

El error muestra una línea y una columna, empezando en 1. Esa posición ayuda a localizar dónde el texto deja de ajustarse a la sintaxis, aunque la causa puede estar antes, por ejemplo en una comilla sin cerrar. La herramienta no repara el documento automáticamente ni copia el contenido en sus mensajes de error.

Propiedades duplicadas y validación de esquemas

Un objeto como {"precio":10,"precio":20} repite un nombre. La especificación recomienda nombres únicos y diferentes programas pueden resolver las repeticiones de forma distinta. Utilavia los rechaza para evitar eliminar un valor silenciosamente. También detecta que "a" y "\u0061" son el mismo nombre una vez interpretados los escapes.

Validar no comprueba JSON Schema ni verifica que existan campos obligatorios. {"edad":"veinte"} puede pasar la comprobación de sintaxis y aun así incumplir una API que espera un número. La validez sintáctica tampoco certifica que el documento sea correcto, fiable o seguro para ejecutarlo en otro contexto. JSON es un formato de datos; esta herramienta no ejecuta su contenido.

Un valor raíz no tiene por qué ser un objeto: un array, una cadena, un número, un booleano o null también pueden ser documentos JSON válidos.

Cuándo minificar y cuándo comparar

Minificar resulta útil para copiar un documento sin el espacio añadido por la sangría. Los espacios dentro de "Ana María" se conservan. No se ordenan las propiedades ni se promete un porcentaje de ahorro: la diferencia depende del formato inicial y algunas representaciones de escapes cambian.

Si tu objetivo es saber si han cambiado los datos entre dos versiones, utiliza el comparador JSON. Allí se ignoran el formato y el orden de las propiedades, mientras que las posiciones de los arrays sí cuentan. La guía de comparación JSON explica cómo interpretar los cambios.

Límites y tratamiento del texto

El documento de entrada puede tener hasta 100 000 unidades UTF-16, 64 niveles de objetos o arrays y 20 000 valores contando la raíz. Un emoji puede ocupar dos unidades; este límite no equivale a un tamaño en bytes. La salida formateada puede ocupar más que la entrada. Estos límites acotan el trabajo del navegador, por lo que un JSON válido que los supere se rechaza igualmente.

El texto permanece en la memoria de esta página y se procesa en tu navegador. No se envía al servidor ni se conserva en un historial. Copiar escribe en el portapapeles solo cuando pulsas el botón; descargar prepara un archivo local utilavia.json. Limpiar o recargar elimina el contenido de la interfaz, pero no borra copias o archivos guardados en otros lugares. Consulta la información de privacidad.

Fuentes técnicas

Fuentes consultadas el 4 de noviembre de 2026. Esta guía describe el comportamiento de Utilavia y no sustituye la documentación del sistema que vaya a recibir tus datos.