Inicio · Herramientas gratis · Comparar JSON

Comparar dos JSON

Pega dos documentos JSON, o suelta un archivo .json en cada lado. Los dos se analizan antes de compararse, así que el orden de las claves y la sangría no generan diferencias: lo que sale es cada cambio real con la ruta donde está —regiones[2], facturacion/plan— y el valor de cada lado. La lista se descarga como CSV. Ningún documento se sube a ningún servidor.

Primer documento pégalo, o suelta un .json

Segundo documento la versión que quieres revisar

¿Lo haces cada mes? Hazlo una vez en TableDI 2, guárdalo como trabajo y vuelve a ejecutarlo el mes que viene. Descargar TableDI 2 gratis

No se sube nada. El archivo lo lee el JavaScript de esta pestaña y no sale de tu ordenador — ningún servidor lo ve, y al cerrar la pestaña los datos desaparecen.

Cómo comparar dos archivos JSON

  1. Cargar los dos documentos. Pégalos en las dos cajas o elige un .json para cada una. Se leen en esta pestaña; no hay subida.
  2. Leer las diferencias por ruta. Cada fila es un cambio: dónde está, si se añadió, se eliminó o cambió, y el valor de cada lado.
  3. Descartar lo que es solo sintaxis. Claves en otro orden, otra sangría o acentos escritos como \u00e1 no producen ninguna fila.
  4. Llevarte la lista. Descárgala como CSV o cópiala para pegarla en la incidencia o en la revisión.

El orden de las claves no es una diferencia

{"b":1,"a":2} y {"a":2,"b":1} son el mismo objeto. Casi cualquier biblioteca que vuelve a escribir un JSON puede cambiar el orden de las claves, y un comparador de texto línea a línea marca entonces en rojo un registro que no ha cambiado. Lo mismo pasa con la sangría y con si el archivo termina o no en salto de línea.

Aquí los dos lados se analizan primero y se comparan los valores ya analizados. Lo que queda es solo lo que cambiaría el comportamiento de quien consume ese JSON.

Espa\u00f1a y España son el mismo texto

Es el falso positivo más habitual con datos en español. El json.dumps de Python escapa por defecto todo lo que no es ASCII, así que un export escribe "Espa\u00f1a" o "Le\u00f3n", y el mismo dato sacado desde otro sistema llega como "España" y "León". Un diff de texto los da por distintos en todas las líneas que llevan una tilde o una eñe.

Como aquí se compara el valor ya analizado, un escape y su carácter son lo mismo y no salen en la lista. Lo que sí sale es una tilde de verdad distinta: "Málaga" contra "Malaga" es un cambio de valor, porque son dos cadenas diferentes.

La coma decimal no es JSON

En JSON el separador decimal es siempre el punto. Un {"importe": 1,5} escrito a mano, o pegado desde una hoja en español, no es JSON válido: la coma se lee como separador entre campos y el analizador se detiene. La página no intenta adivinar qué querías decir; muestra el mensaje del analizador con la posición exacta donde se ha parado. Ese mensaje lo genera el propio navegador y suele venir en inglés, pero la posición es lo que necesitas para encontrar el error.

Si el importe viene entre comillas, "1,5", el JSON es válido pero el valor es un texto, y frente a un 1.5 numérico del otro documento aparece como valor cambiado: 1,5 contra 1.5.

Los arrays sí tienen orden

En un objeto las claves son un conjunto; en un array el orden es el significado. Por eso [1,2,3] contra [3,2,1] aparece como dos posiciones cambiadas, y un elemento añadido al final de una lista sale como una sola fila en lista[3], no como una reescritura de todo lo que viene detrás.

Los subárboles largos se resumen en vez de volcarse enteros, para que cada fila quepa en una línea, y las filas de debajo dicen qué cambió dentro. La vista previa enseña las primeras 300 diferencias; el CSV descargado las tiene todas.

Lo que no hace

  • Fusionar. Informa de las diferencias; no genera un tercer documento.
  • Emparejar elementos de un array por id. Los arrays se comparan por posición. Si los dos archivos traen los mismos registros en otro orden y los datos son una tabla, comparar dos CSV empareja las filas por una columna clave.
  • Arreglar un JSON roto. Comas finales, comillas simples y comentarios dan error de análisis; no admite JSON5 ni JSON Lines.
  • Ignorar tildes. Málaga y Malaga son valores distintos y así se informan.

Tus datos se quedan en esta pestaña

Lo que se pega en un comparador de JSON suele ser la respuesta de una API, un archivo de configuración o un export con datos de clientes, a veces con claves y tokens dentro. Los dos documentos los analiza el JavaScript de esta pestaña; ninguno viaja en una petición.

Cuando lo que comparas cada mes no son dos JSON sino los mismos exports en tabla, la comparación deja de ser una consulta suelta. TableDI 2 es una aplicación de escritorio para el trabajo con archivos que se repite cada periodo: guarda tus fuentes, tus reglas y la entrega como un trabajo, y el mes que viene pones los archivos nuevos y lo vuelves a ejecutar. Todo funciona en tu propio equipo.

Preguntas frecuentes

¿Por qué dos JSON que se ven distintos salen idénticos?

Porque lo que cambiaba era el orden de las claves, la sangría o la forma de escribir los acentos (\u00f1 frente a ñ). Nada de eso cambia lo que el documento significa. Si lo que necesitas es una comparación carácter a carácter, eso es un diff de texto, no de JSON.

¿Por qué me dice que mi JSON no es válido?

Casi siempre por una de cuatro cosas: una coma decimal en un número (1,5 en vez de 1.5), una coma al final del último elemento, comillas simples o un comentario. El mensaje indica la posición donde el analizador se ha parado; el texto del mensaje lo pone el navegador y suele estar en inglés.

¿Puedo comparar dos arrays de registros?

Sí, por posición. Si los mismos registros vienen en otro orden en cada archivo, ordénalos antes por su id: un array no tiene otro orden que el de sus posiciones.

¿Distingue "5" de 5?

Sí. Un número y un texto con los mismos dígitos son tipos distintos, igual que false y 0, o null y una clave que no existe. Todos esos casos se informan.

¿Se sube el JSON a algún servidor?

No. Los dos documentos los analiza y compara el JavaScript de esta pestaña. No hay ninguna petición con su contenido, y al cerrar la pestaña desaparecen.

¿Lo haces cada mes?

En TableDI 2 lo haces una vez y lo guardas como un trabajo. El mes que viene pones los archivos nuevos y lo vuelves a ejecutar.

macOS, Apple Silicon e Intel; la versión de Windows está en camino (qué hacer mientras tanto). Lo gratuito no es una prueba: sin cuenta y sin tarjeta.

Revisado el 2026-10-01 por el equipo de TableDI. ¿Algo mal en esta página? Escríbenos — es un solo buzón, lo leen las personas que hacen TableDI.