IA en tu dispositivo: profesional y privado.

Compresor y minificador JSON

Comprime JSON en una salida compacta de una línea, mide la reducción de tamaño y corrige errores de sintaxis con ayuda detallada del parser.

  • Sin pérdidas, byte a byte
  • Ahorro real y con gzip
  • No se sube nada

Suelte aquí un archivo JSON

.json .jsonc .ndjson .jsonl .geojson .har .map .webmanifest .txt · hasta 25.0 MB · un archivo cada vez

Salida minificada

Todavía no hay nada minificado.

Ajustes
Dialecto
Dialecto

Estricto sigue la especificación JSON. Relajado además acepta comentarios y una coma final, y los elimina.

Para archivos .ndjson y .jsonl. Cada línea se minifica por separado y la estructura de líneas se conserva.

Escribe los caracteres escapados directamente cuando es seguro. El mismo significado con menos bytes: rinde más en texto CJK y emojis.

El tamaño comprimido es el que llega a la red. Desactívelo para ahorrar dos pasadas de compresión en archivos muy grandes.

Límites

Gratis: hasta 25.0 MB por archivo, 1 archivo cada vez. Todos los modos y opciones incluidos.

Cómo minificar JSON

  1. 1

    Pegue o suba JSON

    Pegue su JSON en el cuadro de texto o arrastre un archivo a la zona de soltado. Funciona tanto con JSON formateado como ya minificado, y también con archivos .jsonc, .ndjson, .geojson, .har, .map y .webmanifest.

  2. 2

    Elija un dialecto si lo necesita

    JSON estricto es lo predeterminado. Cambie a Relajado para archivos con comentarios o comas finales, y marque JSON Lines para archivos con un documento por línea. Si la pasada estricta falla, la herramienta prueba los demás modos y le ofrece el que realmente funciona.

  3. 3

    Minifique

    Pulse Minificar. El archivo se analiza fuera del hilo principal, así que la página sigue respondiendo y puede cancelar. Verá el tamaño antes, el tamaño después, el porcentaje ahorrado y —porque es la cifra que llega a la red— el tamaño con gzip antes y después.

  4. 4

    Descargue o copie

    Descargue el resultado como archivo.min.json o cópielo al portapapeles. Con varios archivos minificados, un botón los reúne todos en un único ZIP.

Qué ofrece este minificador JSON

Este minificador JSON gratuito elimina los espacios entre tokens para que su JSON quede en una sola línea compacta, y lo hace sin tocar sus datos. Pegue o suelte un archivo, pulse Minificar y obtendrá el tamaño antes, el tamaño después, el porcentaje ahorrado y el tamaño con gzip en ambos lados, que es la cifra que realmente llega a la red. La entrada inválida recibe línea, columna y un cursor bajo el carácter que falló, además del modo que sí habría funcionado si el archivo es en realidad JSONC o JSON Lines. Todo se ejecuta en su dispositivo; no se sube nada.

  • Salida sin pérdidas — Los números largos, los ceros finales, el orden de las claves y las claves repetidas sobreviven, porque nunca se construye un valor. Solo se quitan los espacios entre tokens.
  • Dos historias de tamaño — Bytes ahorrados en bruto y bytes ahorrados con gzip, uno junto al otro. Minificar suele ahorrar un 45 % en bruto y un 4 % comprimido, y conviene saber cuál está comprando.
  • Errores accionables — Línea, columna, la línea problemática con un cursor y una descripción de lo que se esperaba, no un mensaje de parser con un desplazamiento de caracteres.
  • Los dialectos que la gente tiene de verdad — JSON estricto, JSONC con comentarios y comas finales, y JSON Lines con un documento por línea. La herramienta los prueba por usted cuando falla la pasada estricta.
  • Pegar o archivos — Escriba o pegue en el cuadro, o suelte archivos .json, .jsonc, .ndjson, .jsonl, .geojson, .har, .map, .webmanifest y .txt. Se leen UTF-8 y UTF-16, con o sin marca de orden de bytes.
  • Lotes en Pro — Hasta 20 archivos en una pasada, cada uno llamado archivo.min.json, reunidos en un único ZIP.

Minificación sin pérdidas, y por qué la mayoría no lo es

Casi todos los minificadores JSON —incluido el que había antes en esta página— funcionan analizando su documento en valores y volviéndolos a imprimir. Eso es un reserializador, no un minificador, y cambia sus datos de siete formas que en la salida parecen perfectas. La tabla siguiente está medida, no es hipotética: es lo que producía la implementación anterior de esta página.

Usted escribióUn minificador reserializador devuelveQué se perdió
{"id": 9123372036854000123}{"id":9123372036854000000}Los dígitos más allá del límite de 53 bits del formato de coma flotante se redondean. Es el caso que rompe los identificadores de base de datos y los identificadores tipo snowflake.
{"v": 1e400}{"v":null}Un número demasiado grande para un double pasa a ser Infinity, e Infinity no tiene representación en JSON, así que se escribe como null. El valor se destruye.
{"v": 123456789012345678901234567890}{"v":1.2345678901234568e+29}Un entero de treinta dígitos vuelve como diecisiete dígitos significativos en notación exponencial.
{"v": 1.50}{"v":1.5}Un cero final es significativo en un precio, un número de versión o una medida con precisión fija.
{"2":"b","1":"a"}{"1":"a","2":"b"}El propio modelo de objetos de JavaScript mueve al principio, en orden numérico, las claves que parecen índices de array.
{"a":1,"a":2}{"a":2}Las claves repetidas son JSON válido y se colapsan en silencio a la última.
{"v":-0}{"v":0}El cero negativo pierde su signo.

Esta herramienta toma el otro camino. Recorre los bytes de su archivo y copia cada token —cada cadena, cada literal numérico, cada true, false y null— hasta la salida sin tocarlo, emitiendo solo la puntuación estructural entre ellos. Un número nunca se interpreta, así que no puede reescribirse. Un miembro nunca se guarda en un objeto, así que no puede reordenarse ni deduplicarse. Una secuencia de escape nunca se decodifica, así que no puede cambiar de forma. Los únicos bytes que desaparecen son los espacios entre tokens, que es la definición de la palabra minificar.

Qué se elimina y qué se conserva

JSON tiene exactamente cuatro caracteres de espacio en blanco —espacio, tabulador, retorno de carro y salto de línea— y solo son insignificantes cuando están entre tokens. Dentro de una cadena son datos.

  • Se elimina — La indentación, el salto de línea tras cada coma, el espacio tras los dos puntos y cualquier línea en blanco alrededor del documento. En modo relajado también se van los comentarios y una coma final.
  • Se conserva exactamente — Cada carácter dentro de una cadena, incluidos los espacios de "Juan Pérez" y cualquier secuencia de escape escrita ahí. Cada dígito de cada número. El orden de cada miembro. Cada clave repetida.
  • Nunca se añade — Ninguna clave se entrecomilla de otra forma, ningún número se reformatea, ninguna secuencia de escape se introduce. Si su archivo ya estaba minificado, la salida es idéntica byte a byte a la entrada y la herramienta informa un 0 % de reducción en lugar de fingir lo contrario.

El ahorro en bruto y el ahorro con gzip son cifras distintas

Un minificador que solo le enseña el ahorro en bruto le está enseñando la cifra halagadora. La indentación es el contenido más comprimible que existe —largas series de espacios idénticos—, así que gzip y brotli suelen haber eliminado ya casi todo antes de que sus bytes lleguen a la red. Eso no hace inútil minificar; hace que la medida honesta sea la comprimida.

  • Dónde minificar rinde mucho — En todo lo que no se sirve por un transporte que comprime: un archivo de configuración leído del disco, un payload incrustado en un bundle, un documento guardado en una columna de base de datos, un cuerpo enviado desde un dispositivo que no comprime sus peticiones.
  • Dónde rinde poco — En una respuesta HTTP comprimida con gzip o brotli. Espere porcentajes de un solo dígito sobre lo que la compresión ya hizo, lo que a menudo sigue mereciendo la pena pero no es el 45 % que prometía la cifra en bruto.
  • Dónde rinde en tiempo de análisis — Menos texto sin comprimir es menos trabajo para el parser, en cada cliente y en cada petición, un coste que no desaparece porque los bytes se compriman bien.
  • Cómo leer las dos líneas — La tarjeta bajo cada archivo muestra el tamaño en bruto antes, después y el porcentaje, y luego los mismos tres datos para los tamaños con gzip. Si la segunda línea apenas se mueve, minificar no es la palanca que busca para ese archivo.

JSON estricto, JSONC y los archivos que la gente tiene de verdad

La especificación JSON no tiene comentarios ni comas finales. Los archivos de su disco muy a menudo sí, porque el formato desbordó su especificación en cuanto las herramientas empezaron a usarlo para configuración. El modo estricto es el predeterminado aquí porque una respuesta estricta es la útil cuando comprueba si un payload es válido; el modo relajado existe porque rechazar tsconfig.json no es una postura de principios, solo es poco útil.

  • Estricto — RFC 8259 exactamente. Sin comentarios, sin comas finales, sin claves sin comillas, sin comillas simples, sin un más inicial, sin .5 ni 5., sin ceros iniciales, sin caracteres de control en bruto dentro de una cadena, sin Infinity ni NaN.
  • Relajado — Añade comentarios de línea //, comentarios de bloque /* */ y una coma final antes de una llave o corchete de cierre. Ambos se eliminan de la salida, así que el modo relajado convierte un archivo JSONC en JSON estricto como efecto secundario.
  • No es JSON5 — El modo relajado es JSONC, no JSON5. Las claves sin comillas, las cadenas con comillas simples, los literales hexadecimales, Infinity y NaN se siguen rechazando, y .json5 queda deliberadamente fuera de la lista de archivos aceptados en lugar de estar soportado a medias.
  • Comprobado, no adivinado — La herramienta nunca cambia de dialecto en silencio. Si la pasada estricta falla, prueba las demás por detrás y le ofrece como botón la que tuvo éxito, así que una sugerencia siempre es algo que se ha demostrado que funciona con su archivo, no una conjetura a partir del código de error.

JSON Lines y NDJSON

Un archivo JSON Lines no es un documento JSON; son muchos, uno por línea, y por eso un parser normal se detiene al final del primero y se queja de contenido sobrante. Active JSON Lines y cada línea se minifica como su propio documento conservando la estructura de líneas, de modo que el resultado sigue siendo un archivo JSON Lines.

  • Por qué dividir por saltos de línea es exacto aquí — Un salto de línea en bruto dentro de una cadena JSON es un carácter de control, que la especificación prohíbe. Ningún registro puede contener uno, así que un salto de línea siempre es un salto de registro: es una garantía, no una heurística.
  • Líneas en blanco — Se descartan. No llevan ningún registro, y conservarlas en un minificador significaría preservar exactamente los bytes que la herramienta existe para eliminar.
  • Los errores apuntan al archivo — Un fallo en el registro cuatro mil se informa con el número de línea dentro del archivo completo, no con un desplazamiento dentro de ese registro, además de qué registro era.
  • La extensión acompaña — Una pasada JSON Lines se descarga como .min.ndjson, nunca como .min.json, porque un documento por línea no es un único valor JSON y llamarlo .json le entregaría un archivo que ningún parser acepta.

Secuencias Unicode y la forma opcional de encogerlas

Muchos generadores de JSON escapan cada carácter no ASCII por precaución, así que "你好" llega como "\u4f60\u597d": doce bytes donde bastarían seis. Como ambas formas significan exactamente la misma cadena para cualquier parser, convertirlas es un ahorro seguro, pero cambia los bytes, así que está desactivado por defecto y claramente etiquetado.

  • Qué convierte — Cualquier secuencia \uXXXX cuyo carácter pueda escribirse directamente: seis bytes pasan a ser uno, dos o tres, y un par sustituto de doce bytes para un emoji pasa a ser cuatro.
  • Qué rechaza — \u0022 y \u005c, porque una comilla o una barra invertida en bruto terminarían o reiniciarían el token. Todo lo inferior a \u0020, porque un carácter de control en bruto dentro de una cadena es JSON inválido. Y un sustituto suelto, que no tiene forma UTF-8.
  • Los sustitutos sueltos pasan tal cual — Un escape de sustituto suelto — \u seguido de un código de D800 a DFFF, sin pareja — se acepta y se copia sin cambios, exactamente como lo acepta el propio parser del navegador. Son seis caracteres ASCII en el origen y los mismos seis en la salida, así que no se pierde nada dejándolo en paz.
  • Desactivado por defecto — Porque con la opción desactivada la salida es idéntica byte a byte a la entrada token a token, y esa garantía vale más que los bytes para la mayoría.

Cómo leer un error del parser

Un error de análisis solo es útil si le dice dónde poner el cursor. «Unexpected token } in JSON at position 4172» no le dice ni la línea ni la columna, y ningún editor le muestra la posición 4172. Cada fallo aquí se informa con las tres cosas que permiten corregirlo.

  • Línea y columna — La columna cuenta caracteres, no bytes, así que el número coincide con lo que muestra su editor incluso en una línea con emojis o texto CJK.
  • La línea, con un cursor — Se muestra la línea problemática, recortada si es muy larga, con un cursor bajo el carácter exacto. Las líneas largas se desplazan dentro de la tarjeta en lugar de estirar la página.
  • Qué se esperaba — Mensajes distintos para una coma final, un comentario en modo estricto, un cero inicial, una comilla suelta, una cadena sin cerrar, un carácter de control en bruto, una secuencia de escape inválida, un dígito hexadecimal incorrecto, UTF-8 inválido y un documento que termina antes de tiempo.
  • Una coma final se nombra como tal — Es con diferencia el error más común en JSON editado a mano, y la diferencia entre «se esperaba }» y «quite la coma antes de }» es casi todo el valor de un mensaje de error.

Qué archivos abre esta herramienta

La lista aceptada es cerrada y se aplica en el propio diálogo de archivos, así que nunca elegirá un archivo y verá que no pasa nada. Todo lo que está en la lista es JSON; todo lo que queda fuera y podemos resolver es un enlace a la herramienta que sí lo trata.

  • Aceptados — .json, .jsonc, .ndjson, .jsonl, .geojson, .har, .map, .webmanifest y .txt. Un mapa de origen, una exportación de red del navegador, una colección de entidades GeoJSON y un manifiesto de aplicación web son todos documentos JSON, y ninguno podía seleccionarse antes.
  • Codificaciones — Se espera UTF-8. Una marca de orden de bytes UTF-8 se elimina en lugar de informarse como error de sintaxis en el carácter 0, y los archivos UTF-16 se convierten, con o sin marca. El UTF-8 inválido se informa con su posición en lugar de copiarse a la salida.
  • Redirigidos, no rechazados — Un CSV va a CSV a JSON, un XML a XML a JSON, un YAML a YAML a JSON, una hoja de cálculo a Excel a JSON. Cada una es una herramienta gratuita de este sitio y el enlace lleva directamente a ella.
  • No aceptados — .js y .json5. Un archivo JavaScript es un programa, no un documento, y JSON5 necesita sintaxis que este motor no implementa: listar cualquiera de los dos prometería algo que la herramienta no puede hacer.

Minificar varios archivos a la vez

La versión gratuita minifica un archivo cada vez, de hasta 25 MB, con todos los modos y todas las opciones disponibles. Pro añade los lotes: hasta 20 archivos en cola juntos, cada uno con sus propias cifras de antes y después, y un botón que reúne los resultados en un único ZIP.

  • Un archivo comprimido, no veinte descargas — Un lote de veinte archivos sin un único ZIP significa veinte diálogos de guardado del navegador, que no es una función por la que nadie pagaría.
  • Los nombres sobreviven — Cada resultado toma el nombre de su origen —api-response.json pasa a ser api-response.min.json— en lugar de veinte archivos llamados todos minified.json. Dos entradas con el mismo nombre reciben un sufijo para que ninguna se pierda dentro del ZIP.
  • Comprimido, porque es texto — El ZIP comprime sus entradas. El JSON minificado es texto y se comprime a alrededor de una quinta parte, lo que importa a quien vino aquí precisamente a hacer las cosas más pequeñas.
  • El límite de tamaño — 25 MB por archivo en la versión gratuita. En Pro el techo es lo que su dispositivo realmente puede manejar, medido a partir del dispositivo y no elevado a otra cifra fija.

¿Por qué minificar JSON?

El JSON minificado usa menos ancho de banda y menos tiempo de análisis en APIs, configuraciones y bundles de front-end. Eliminar espacios no cambia los datos —solo la representación—, así que es seguro para producción, siempre que la herramienta que lo hace realmente solo elimine espacios. Esta herramienta le da la comparación en bruto y la comprimida para que vea lo que ahorra de verdad. Si su JSON ya está minificado no verá reducción; la salida sigue siendo válida y lista para copiar o descargar.

  • Payloads más pequeños — Menos datos por la red para APIs y clientes móviles, y menos texto que recorrer para el parser de cada cliente.
  • La misma semántica y aquí los mismos bytes — Los valores analizados son idénticos, y como ningún valor se reconstruye, los propios tokens también lo son.
  • Configuraciones y bundles — Los archivos leídos del disco o incrustados en un bundle no suelen servirse por un transporte que comprime, que es donde minificar más rinde.
  • No se sube nada — Todo el análisis se ejecuta en su dispositivo, así que un payload privado de API o un archivo HAR con credenciales nunca sale de la máquina.

Cómo funciona el minificador

El motor es un tokenizador con validación que emite tramos. Recorre los bytes del archivo una vez y, cada vez que reconoce un token completo, copia los bytes de ese token a un búfer de salida reservado con el tamaño de la entrada: la salida de un minificador nunca puede ser más larga que su entrada, así que el búfer nunca crece.

  • Fuera del hilo principal — El análisis se ejecuta en un worker, así que un archivo de 25 MB no congela la página, el progreso es un recuento real de bytes en lugar de una animación, y Cancelar detiene el trabajo de inmediato.
  • Una pasada, sin árbol de valores — Como no se construyen objetos ni arrays, la memoria se mantiene en torno a una quinta parte del tamaño del archivo en lugar del doble, y los números largos conservan todos sus dígitos.
  • Tramos, no caracteres — Las series de texto ordinario se copian en una sola operación en lugar de carácter a carácter, que es la diferencia entre unos 200 MB por segundo y unos 77.
  • El mismo código en ambos casos — Si no puede arrancar un worker, las mismas funciones se ejecutan en el hilo principal. Es una implementación con dos sitios donde ejecutarla, así que el camino alternativo no puede producir bytes distintos.

El escáner lee unos 200 MB de JSON por segundo y mantiene en memoria alrededor de una quinta parte del archivo mientras trabaja, porque copia tramos de tokens en lugar de construir un árbol de valores.

Preguntas frecuentes

¿Cómo funciona la minificación de JSON?

El minificador lee su JSON token a token y copia cada token tal cual, descartando solo los espacios entre tokens. Se eliminan los espacios, tabulaciones, saltos de línea e indentación que están entre una clave y su valor o entre elementos de un array; todo lo que hay dentro de una cadena se deja intacto porque es dato, no formato. Informa el tamaño de entrada, el de salida y el porcentaje ahorrado.

¿Están seguros mis datos JSON?

Sí. Se elimina cada espacio, salto de línea e indentación mientras los datos permanecen equivalentes byte a byte. Nada sale de su dispositivo, así que puede minificar con seguridad payloads privados de API, archivos de configuración o datos sensibles sin ninguna petición de red. También funciona sin conexión una vez cargada la página.

¿Minificar cambia mis datos?

No. Solo se eliminan los espacios y saltos de línea insignificantes: las claves, los valores, el anidamiento y los tipos analizados quedan equivalentes byte a byte. Un parser que lea la salida minificada produce exactamente el mismo objeto que el original. Los espacios dentro de los valores de cadena se conservan porque son datos significativos, no formato.

¿Sobrevive un número de identificación largo a la minificación?

Sí, exactamente como lo escribió. La mayoría de los minificadores online analizan su JSON en valores de JavaScript y los vuelven a imprimir, lo que redondea cualquier entero mayor que 9.007.199.254.740.991: un identificador como 9123372036854000123 vuelve como 9123372036854000000, y 1e400 vuelve como null. Esta herramienta nunca convierte un número en un valor; copia los dígitos que usted escribió, así que 1.50 sigue siendo 1.50 y un número de treinta dígitos conserva los treinta.

¿Se conservan las claves repetidas y su orden?

Ambas cosas. Volver a serializar a través de un objeto de JavaScript descarta en silencio todas las claves repetidas salvo la última y mueve al principio, en orden numérico, las claves que parecen índices de array, de modo que {"2":"b","1":"a"} vuelve reordenado. Como este minificador nunca construye un objeto, sus miembros quedan en el orden en que los escribió y las claves repetidas siguen ahí.

¿Cuánto se reducirá mi JSON?

Depende de cuánto espacio en blanco tuviera el original. El JSON con indentación suele reducirse entre un 20 % y un 60 %, y la herramienta muestra el tamaño exacto de entrada, el de salida en bytes o KB y el porcentaje ahorrado. Si la entrada ya está minificada verá un 0 % de reducción porque no queda espacio que quitar.

¿Por qué el ahorro con gzip parece mucho menor?

Porque gzip ya es muy bueno con los espacios repetidos. La indentación se comprime hasta casi nada, así que un archivo que pierde un 45 % de sus bytes en bruto al minificarse a menudo pierde solo un pequeño porcentaje una vez comprimido, y el tamaño comprimido es el que realmente cruza la red. La herramienta muestra ambas cifras para que usted decida si minificar vale la pena en su caso, en lugar de enseñarle solo la halagadora.

¿Qué ocurre si mi JSON no es válido?

Obtiene la línea y la columna, la línea problemática con un cursor bajo el carácter exacto y una descripción sencilla de lo que se esperaba ahí. Si el archivo es válido en otro dialecto, la herramienta los prueba por usted y le ofrece el que funciona: un archivo con comentarios o una coma final propondrá Relajado, y un registro con un objeto por línea propondrá JSON Lines. Los enlaces al Formateador y al Validador JSON están ahí para lo que requiera una edición real.

¿Admite archivos con comentarios o con un objeto por línea?

Sí. El modo relajado acepta comentarios // y /* */ y una coma final antes de una llave o corchete de cierre, lo que cubre tsconfig.json, la configuración de VS Code y la mayoría de configuraciones editadas a mano; los comentarios se eliminan como parte de la minificación. El modo JSON Lines trata cada línea como su propio documento y conserva la estructura de líneas, que es lo que necesitan las exportaciones de registros y los conjuntos de datos de aprendizaje automático.

¿Es gratis y funciona en el móvil?

Sí. Todos los modos, todas las opciones y el informe de errores son gratuitos en archivos de hasta 25 MB. Pro añade la minificación por lotes —hasta 20 archivos a la vez, entregados en un único ZIP— y eleva el límite de tamaño a lo que su dispositivo pueda manejar. Funciona en navegadores de escritorio y móviles y sigue funcionando sin conexión tras cargar la página.

4.8de 5

de 95 valoraciones

Valora esta herramienta

Toca una estrella — es un segundo