Comparador JSON
Compara JSON u objetos JavaScript por su valor, sin importar el orden de claves ni el formato.
Funciona por completo en tu navegador. Nada de lo que pegues aquí se envía a ningún sitio.PrivadoOriginal
Modificado
Diferencias
Ctrl + Intro para compararSobre esta herramienta
Pega el original a la izquierda y la versión nueva a la derecha. Los dos se comparan como datos y no como texto: los objetos se emparejan clave a clave, así que reordenar claves, cambiar la indentación o usar comillas simples en vez de dobles nunca cuenta como cambio. Lo que sí cuenta se dibuja sobre los propios editores —las propiedades eliminadas en rojo, las añadidas en verde y los valores modificados en ámbar, con el valor antiguo y el nuevo resaltados— y se lista debajo por ruta, como $.items[2].qty, con los dos valores enfrentados. Haz clic en una fila, o usa las flechas de la barra, para llevar una diferencia a la vista en ambos lados.
Cualquiera de los dos lados puede ser JSON estricto o un objeto literal de JavaScript: claves sin comillas, comillas simples, comas finales, comentarios y los True y None de Python se leen con el mismo parser tolerante del Formateador de JSON, así que un valor copiado del código fuente se compara directamente con la respuesta de una API. Los números se comparan por su valor, de modo que 39.5 es igual a 39.50 y 1e2 a 100, mientras que los enteros demasiado grandes para un double se comparan dígito a dígito. Un lado que no se puede leer se indica con su línea y columna, con el token culpable subrayado.
Los arrays conservan su orden y se alinean igual que las líneas en un comparador de texto, de modo que un elemento insertado aparece como una sola adición en lugar de desplazar todo lo que viene detrás, y un objeto editado dentro de un array muestra el campo que cambió y no un objeto sustituido entero. Activa «Ignorar orden de arrays» para comparar listas como conjuntos, y «Expandir anidados» para comparar un string que contiene JSON escapado como el documento que lleva dentro. El botón «Ordenar claves y formatear» reescribe los dos lados con las claves ordenadas, por si quieres que también los textos queden alineados.
Nada de lo que pegues se transmite. La página es HTML estático y la comparación ocurre en tu pestaña, así que los payloads de producción, los tokens de un archivo de configuración y los datos de clientes no salen de tu dispositivo.
Preguntas frecuentes
¿Se sube mi JSON a algún servidor?
No. El análisis y la comparación son JavaScript que se ejecuta en tu navegador, y la página no tiene ningún backend al que enviar nada. Puedes desconectarte de la red y la herramienta sigue funcionando.
¿El orden de las claves cuenta como diferencia?
No. Los objetos se comparan clave a clave, así que {"a":1,"b":2} y {b: 2, a: 1} son los mismos datos. Cuando las claves sí vienen en otro orden, la barra indica en cuántos objetos ocurre, para que sepas que los textos difieren aunque los datos no. El orden de los arrays sí cuenta, salvo que actives «Ignorar orden de arrays».
¿Puedo comparar un objeto JavaScript con un JSON?
Sí. En cualquiera de los dos lados se aceptan claves sin comillas, strings con comillas simples o backticks, comas finales, comentarios // y /* */, y los True, False y None de la salida de Python. Las expresiones no se evalúan: una llamada a una función o una referencia a una variable se indica como error de sintaxis, con su línea y columna.
¿Cómo se comparan los arrays?
En orden, alineados como las líneas en un comparador de texto: los elementos iguales en ambos lados sirven de ancla, y los que quedan entre dos anclas se emparejan y se comparan en profundidad. Un elemento que cambió de posición aparece como eliminado en un sitio y añadido en otro. Con «Ignorar orden de arrays» activado, cada elemento se empareja con cualquier elemento igual del otro lado.
¿Cómo de grande puede ser el documento?
El límite es la memoria de tu navegador, no un tope de subida. Documentos de varios megabytes se comparan en una fracción de segundo; a partir de unos 400 KB por lado las marcas dentro del texto se desactivan para que escribir siga siendo fluido, mientras que los marcadores de línea y la lista de diferencias siguen funcionando.
¿Puede generar un JSON Patch o fusionar los dos lados?
Todavía no. La herramienta indica y marca cada diferencia, pero no genera un parche RFC 6902 ni aplica un lado sobre el otro. Los dos editores siguen siendo editables, así que puedes reconciliarlos a mano y ver cómo se vacía la lista.