JSON Diff es refereix a comparar dos conjunts de dades JSON per trobar camps afegits, eliminats i modificats entre ells. En el desenvolupament diari, sovint necessitem saber "què és exactament diferent" entre dos JSON: què ha canviat en l'estructura de resposta abans i després d'una actualització d'API, on difereixen les configuracions entre dos entorns, quin camp es desvia dels resultats reals respecte a les línies base esperades en proves automatitzades. La comprovació manual línia per línia és lenta i propensa a errors; una eina JSON Diff pot ressaltar automàticament les diferències.
La comparació JSON diff generalment segueix dos enfocaments. Un és el "diff textual": després de formatar el JSON en text multilínia canònic, realitzar una comparació semblant a Git diff línia per línia, mostrant intuïtivament afegits, eliminacions i modificacions per línia. L'altre és el "diff estructural/semàntic": analitzar el JSON en una estructura d'arbre i comparar valors i tipus un per un per ruta de camp (per exemple, user.address.city), sense veure's afectat per l'ordre dels camps, sagnies o altres factors de formatatge. Aquesta eina proporciona tant Vista de Text com Vista Semàntica, commutables segons calgui.
Per què formatar abans de comparar? Perquè les mateixes dades poden tenir formatatges completament diferents (una línia vs. multilínia, sagnia de 2 espais vs. 4 espais). Si es comparessin directament com a text en brut, apareixerien molts "falsos diferències" causades per variacions de formatatge. Aquesta eina analitza i formata automàticament ambdós costats abans de la comparació, eliminant la interferència d'espais en blanc perquè només vegis canvis de dades realment significatius.
Cal tenir en compte que l'ordre de les claus en objectes JSON és semànticament poc important ({"a":1,"b":2} és equivalent a {"b":2,"a":1}), però l'ordre dels elements de la matriu és significatiu ([1,2] és diferent de [2,1]). Per tant, quan només t'importi la consistència del contingut de la matriu independentment de l'ordre, et recomanem ordenar les matrius o ordenar les claus abans de comparar per evitar que canvis d'ordre s'identifiquin erròniament com a diferències.
Tot el formatatge i comparació en aquesta eina es fa localment al navegador; les dades mai es pujen als servidors. També admet ressaltat a nivell de caràcter, recompte d'afegits/eliminacions/modificacions, comparació simultània multipestanya i compartició d'escenaris de comparació mitjançant URL, adequada per a escenaris d'integració API, comparació de configuracions, assercions de proves i Code Review.