JSON Diff
Compare two JSON documents structurally: added/removed keys, changed values and type changes with exact paths, ignoring key order.
Compara campos JSON, valores y cambios de tipo de un vistazo
¿Qué diferencia hay entre JSON Diff y una comparación de texto?
JSON Diff analiza los dos JSON como objetos y los compara de forma recursiva. Solo informa de diferencias semánticas de estructura, y cada diferencia incluye la ruta JSONPath, el tipo de cambio y los valores anterior y nuevo.
El orden de las claves de un objeto no se considera una diferencia
Una comparación de texto normal consideraría diferentes {"a":1,"b":2} y {"b":2,"a":1} porque el orden de los caracteres es distinto. Sin embargo, semánticamente ambos objetos son iguales. JSON Diff compara los valores por nombre de campo, por lo que cambiar el orden de las claves no genera ninguna diferencia.
Cuatro tipos de diferencias detectadas
Añadido (un campo que existe en B pero no en A), eliminado (un campo que existe en A pero no en B), valor modificado (el valor de una misma ruta es diferente) y cambio de tipo (por ejemplo, el número 18 se convierte en la cadena 18). Los arrays se comparan por índice, mientras que los objetos y arrays anidados se comparan de forma recursiva. La lista de diferencias puede copiarse como texto plano usando los prefijos + / - / ~ / !.
Cómo interpretar el área de resultados
La tabla de resultados contiene cuatro columnas: ruta, tipo, valor de JSON A y valor de JSON B. Las rutas utilizan JSONPath, por ejemplo $.user.name o $.list[0].id. El JSON completo de diferencias que aparece debajo organiza cada cambio en un array estructurado que puedes copiar para localizar modificaciones en el código. Las estadísticas muestran el número de diferencias y las cantidades de elementos añadidos, eliminados, modificados y sin cambios; los cambios de tipo se indican por separado y no se mezclan con las modificaciones de valor.
Dos opciones de comparación
Ignorar el orden de los arrays permite comparar los arrays como conjuntos: [1,2] y [2,1] se consideran iguales. Es útil para listas de etiquetas o permisos cuyo orden no tenga significado. Ignorar los espacios en blanco iniciales y finales de las cadenas evita diferencias causadas por espacios o saltos de línea. Al cambiar una opción, la comparación se ejecuta de nuevo inmediatamente. Estas opciones solo cambian el criterio de comparación y no modifican los datos introducidos.
Cómo comparar archivos JSON locales
Cambia a la pestaña de archivos y arrastra dos archivos .json a las áreas de carga izquierda y derecha, o selecciónalos uno por uno. Los archivos se leen localmente en el navegador mediante FileReader y el límite es de 10 MB por archivo. Cuando ambos lados están cargados, la comparación comienza automáticamente. El contenido de los archivos no sale del navegador.
Causas habituales de las diferencias
Un cambio de nombre de un campo de una API aparecerá como una eliminación y una adición en la misma zona lógica; un cambio de valor predeterminado aparecerá como una modificación de valor; mezclar un booleano con una cadena, como true y "true", se detectará como un cambio de tipo. Si se modifica el orden de un array y no está activada la opción para ignorarlo, se mostrarán las diferencias correspondientes. Primero revisa la ruta y después el tipo para localizar la causa. Si los dos datos son completamente iguales, el área de resultados indicará directamente que no hay diferencias en lugar de mostrar una tabla vacía.
¿JSON Diff ignora el orden de las claves?
JSON Diff analiza los dos JSON como objetos y los compara de forma recursiva. Un orden diferente de las claves no genera diferencias; solo se informan campos añadidos, eliminados, valores modificados y cambios de tipo.
Cada diferencia incluye una ruta JSONPath, como $.user.name, que permite localizar directamente el campo correspondiente de una API o del código.
- Analiza primero los JSON y después los compara; el orden de las claves de los objetos no se considera una diferencia
- Clasifica las diferencias en añadidos, eliminaciones, modificaciones de valor y cambios de tipo, todas con ruta JSONPath
- Los arrays pueden compararse opcionalmente como conjuntos; [1,2] y [2,1] se consideran iguales
- La lista de diferencias puede copiarse como texto plano usando los prefijos + / - / ~ / !
- Al comparar archivos, el límite es de 10 MB por archivo y la comparación comienza automáticamente cuando ambos lados están cargados
- Todo el procesamiento se realiza localmente en el navegador y el contenido no se sube al servidor