Cómo comparar JSON: objetos, arrays y valores
Distingue un cambio de formato de un cambio de datos y aprende a interpretar las rutas del comparador.
Formato y datos no son lo mismo
Dos textos pueden tener sangrías o saltos de línea diferentes y contener los mismos datos. Este comparador interpreta el JSON antes de comparar; no es un buscador de diferencias entre líneas. Un documento válido también puede ser un número, una cadena, un booleano o null, sin estar dentro de un objeto.
No se admiten comentarios, comas finales, undefined, NaN ni Infinity. Las cadenas y las claves usan comillas dobles. Si algo no se puede interpretar, se indica el documento, la línea y la columna, sin copiar su contenido en el mensaje.
Comparar dos documentos JSON abre la herramienta.
Objetos y arrays siguen reglas distintas
En un objeto, cambiar el orden de las claves no cambia los valores: {"a":1,"b":2} equivale aquí a {"b":2,"a":1}. Una clave que aparece solo en el segundo documento se marca como añadida; si aparece solo en el primero, como eliminada.
Los arrays conservan su orden. En ["rojo","azul"] y ["azul","rojo"], las posiciones 0 y 1 tienen valores distintos. Esta herramienta compara índices, sin deducir movimientos. Insertar un elemento al principio puede cambiar varias posiciones posteriores; esas filas no significan que hayas realizado otras tantas operaciones de edición.
Una propiedad con null sigue existiendo. Por eso {} y {"dato":null} son diferentes. Los tipos también cuentan: el número 1, la cadena "1" y el booleano true no son intercambiables. Se rechazan las claves duplicadas para evitar resultados ambiguos.
Números sin pérdida de precisión
La comparación conserva el valor numérico escrito, incluso cuando supera la precisión habitual de JavaScript. 9007199254740992 y 9007199254740993 se distinguen, al igual que 0.1 y 0.10000000000000001.
Una notación diferente puede representar el mismo valor: 1, 1.0 y 1e0 no generan un cambio. En esta herramienta -0 y 0 también se consideran iguales. Estas reglas describen la comparación; no convierten la herramienta en un sistema de cálculo o validación financiera.
Cómo leer una ruta JSON Pointer
La ruta /usuario/nombre señala nombre dentro de usuario. /colores/0 señala el primer elemento del array colores. La ruta vacía identifica el documento entero y se muestra como (raíz).
Las claves que contienen caracteres especiales requieren un escape: ~ se representa como ~0 y / como ~1. Por ejemplo, la clave a/b aparece como /a~1b; una clave vacía aparece como /, distinta de la raíz. Son rutas para localizar valores, no comandos para modificar el documento.
Límites y cuidado de los documentos
El máximo es de 100 000 unidades UTF-16, 64 niveles y 20 000 valores por documento. Una lista limitada a 500 diferencias no demuestra que el resto sea igual: revisa el aviso y reduce el contenido si necesitas ver más. Los valores largos pueden mostrarse abreviados.
La comparación se realiza en tu navegador, sin subir los textos ni guardar un historial. Antes de compartir una captura, revisa qué valores aparecen. Limpiar borra la vista de la herramienta, no otras copias o descargas. La página de privacidad explica el alcance de estas medidas.