Cómo se usa
- Pegue el JSON antiguo en JSON izquierdo y el JSON nuevo en JSON derecho.
- Marque Ignorar el orden de los elementos de los arrays si los arrays son conjuntos, como listas de etiquetas.
- Lea la tabla de Diferencias. Cada fila da la Ruta (JSON Pointer) del valor, y copie el JSON Patch cuando Comprobación del parche indique que se aplica.
Cómo se comparan los documentos
Los dos documentos se comparan por valor. El orden de los nombres dentro de un objeto no importa, porque JSON define un objeto como un conjunto de miembros. El orden de los elementos de un array sí importa, salvo que marque la opción, ya que un array es una lista ordenada.
Los números se comparan como números, así que 1 y 1.0 son iguales. La RFC 8259, sección 6, dice que los enteros de −(2⁵³)+1 a (2⁵³)−1 se leen igual en cualquier implementación, y que un entero más largo puede redondearse al leerlo.
Rutas y el parche
Una ruta es un JSON Pointer (RFC 6901): cada paso es un nombre o un índice, separados por una barra. El primer elemento de la lista de etiquetas es /tags/0, y la ruta vacía es el documento completo. Una barra dentro de un nombre se escribe ~1, y una tilde se escribe ~0.
El JSON Patch (RFC 6902) usa tres operaciones: add, remove y replace. Los elementos de array quitados se eliminan empezando por el último, para que cada índice siga siendo correcto cuando se usa, y los elementos añadidos se agregan con el índice «-», que la RFC 6902 define como el final del array.
Ignorar el orden de los arrays
Con la opción marcada, los elementos se emparejan por su valor, sea cual sea su posición. Los elementos sin pareja se indican como añadidos o quitados. Un array que difiere se reemplaza entero en el parche, porque un parche que solo mueve elementos necesitaría saber cómo se movieron. El parche entonces da el array en el orden del documento derecho.
Ejemplo resuelto: los documentos por defecto
El documento izquierdo tiene el nombre FireToolLand, la versión 1, las etiquetas json y csv, y free con el valor true. El documento derecho tiene la versión 2, las etiquetas csv, json y yaml, y una licencia null. Leídas en orden, las diferencias son seis: la versión, las dos etiquetas cambiadas, la etiqueta yaml añadida, el free quitado y la licencia añadida.
Con Ignorar el orden de los elementos de los arrays marcado, las etiquetas son los mismos dos elementos en otro orden, así que la única diferencia de etiquetas es yaml, y el número baja a cuatro.
| Resultado | Textos por defecto | Orden ignorado |
|---|---|---|
| Número de diferencias | 6 | 4 |
| Resumen | Añadidos: 2. Quitados: 1. Cambiados: 3. | Añadidos: 2. Quitados: 1. Cambiados: 1. |
Preguntas frecuentes
¿Por qué importa el orden de los elementos de un array?
En JSON un array es una lista ordenada, así que [1,2] y [2,1] son datos distintos. Marque Ignorar el orden de los elementos de los arrays cuando el array sea un conjunto, como una lista de etiquetas o de permisos.
¿Qué significa una ruta como /tags/0?
Es un JSON Pointer (RFC 6901): el miembro tags, y después su primer elemento, porque los índices empiezan en 0. La ruta vacía significa el documento completo, y un nombre que contiene una barra se escribe con ~1 en su lugar.
¿Son 1 y 1.0 el mismo valor?
Sí. Los dos son el número uno, así que la página no indica ninguna diferencia. Un analizador de JSON puede redondear enteros mayores que 2⁵³, así que compare los identificadores largos como texto.
¿Para qué sirve un JSON Patch?
Es una lista de pasos (RFC 6902) que un servidor o una biblioteca aplica a un documento para obtener otro, por ejemplo para actualizar un archivo de ajustes guardado. La comprobación del parche indica que los pasos dan el documento correcto.
¿Por qué se reemplaza un array entero cuando se ignora el orden?
Con el orden ignorado, un array cambiado no tiene un paso único que lo convierta en el correcto sin saber cómo se movieron sus elementos. Por eso el parche escribe el array correcto completo.
¿Se envía mi JSON a algún sitio?
No. Los dos textos se leen y se comparan en su navegador, y nada de lo que pega se envía a nuestro servidor ni se guarda allí.
Fuentes
- RFC 8259 (en inglés): The JavaScript Object Notation (JSON) Data Interchange Format
- RFC 6901 (en inglés): JavaScript Object Notation (JSON) Pointer
- RFC 6902 (en inglés): JavaScript Object Notation (JSON) Patch
Cifras y texto revisados por última vez el martes, 10 de noviembre de 2026.