Comparar JSON

Compara valores JSON y localiza propiedades añadidas, eliminadas o cambiadas.

Tus archivos se procesan aquí, en tu dispositivo

No enviamos el contenido de tus archivos o textos a un servidor de procesamiento. No necesitas una cuenta y no hay un cupo diario de operaciones. Cada herramienta tiene límites de tamaño para cuidar la memoria de tu dispositivo.

Necesitas conexión para cargar el sitio y sus recursos. El alojamiento puede recibir datos técnicos de las visitas. Los favoritos guardan solo identificadores de herramientas en este navegador.

Cómo tratamos tus datos →

Cómo usar esta herramienta

  1. Pega el documento original y el nuevo en sus campos.
  2. Aplica para comparar tipos, valores, claves e índices.
  3. Revisa las rutas del informe y descarga las diferencias si necesitas conservarlas.

Un ejemplo que puedes comprobar

Identifica un cambio de valor sin confundirlo con el orden de las propiedades.

Datos de ejemplo

Original: {"name":"Ana","active":true}
Nuevo: {"active":true,"name":"Luis"}

OpcionesComparación estructural.

Resultado esperado

[{"path":"/name","change":"changed","before":"Ana","after":"Luis"}]

Hay una diferencia. Cambiar la posición de active no añade otra. El informe usa rutas JSON Pointer y no es un parche ejecutable.

Comparar JSON: usos y recomendaciones

Comparar JSON por estructura permite separar cambios de datos de cambios de presentación. Dos documentos con distinta sangría o con las propiedades de un objeto en otro orden pueden representar exactamente los mismos valores. Esta herramienta analiza ambos documentos y compara su contenido. Si no hay diferencias, el informe es un array vacío y el contador indica cero. Eso no significa que los archivos originales sean idénticos byte a byte: pueden tener espacios, saltos de línea o notaciones numéricas diferentes que produzcan el mismo valor al interpretarse.

Los arrays se comparan por posición. Intercambiar dos elementos puede generar varios cambios aunque ambos elementos sigan presentes. No se buscan automáticamente identificadores como id para emparejar objetos movidos y no se calcula una edición mínima de la lista. Si quieres comparar conjuntos sin que importe el orden, prepara antes una representación ordenada según una clave definida por ti. Los tipos también importan: 1 y "1" son distintos, false no equivale a 0 y una propiedad ausente no equivale a una propiedad presente con null. Cambiar un objeto entero por una cadena se informa como un cambio del valor en esa ruta.

Cada diferencia contiene path y change. Las propiedades añadidas incluyen after, las eliminadas incluyen before y los valores modificados incluyen ambos. Las rutas utilizan la forma textual de JSON Pointer: barras y virgulillas de los nombres se escapan como ~1 y ~0. La cadena vacía representa la raíz cuando el documento completo cambia de tipo o valor. Este informe es descriptivo; no corresponde al formato JSON Patch y no debe ejecutarse como una lista de instrucciones para modificar otro documento. Conserva ambos originales si necesitas repetir la comparación o comprobar el contexto de una diferencia.

El analizador rechaza claves duplicadas y números enteros cuya magnitud no se pueda representar de forma segura. JSON utiliza la precisión numérica del navegador; para identificadores largos conviene que el origen use cadenas y para cálculos decimales exactos se requiere un sistema adecuado al dominio. Puedes comparar hasta un millón de caracteres por documento y cien niveles de anidación. Si aparecen más de mil diferencias, la operación pide bloques más pequeños en lugar de entregar un informe parcial que parezca completo. Antes de revisar una respuesta extensa, prueba con un cambio de nombre, una propiedad eliminada y un array reordenado para comprobar cómo se describen esos tres casos.

Opciones y límites

Pega dos documentos JSON válidos. El orden de las propiedades de un objeto no importa; el de los arrays sí. Las diferencias se identifican mediante JSON Pointer. Rechaza claves duplicadas y números enteros fuera del rango seguro. Máximo 1 millón de caracteres por documento, 100 niveles y 1.000 diferencias.

Preguntas frecuentes

¿Un número y una cadena son iguales?

No. El número 1 y la cadena "1" son valores distintos. Cambios de sangría no generan diferencias.

Guías