tigtools

JSON Diff

Liitä kaksi JSON-asiakirjaa nähdäksesi tarkalleen, mitkä arvot eroavat, lueteltuna poluittain, kuten $.order.items[2].price.

Toimii selaimessasi Ei rekisteröitymistä

Taulukoiden vertailu
Näytä

Käyttöohje

  1. Liitä alkuperäinen JSON vasemmalle ja muutettu JSON oikealle tai kokeile esimerkkiä.
  2. Valitse, miten taulukoita verrataan: sijainnin mukaan tai täsmäyttämällä kohteet niin, että lisätty kohde ilmoitetaan kerran.
  3. Lue erot luettelona tai rinnakkain. Jokaisella on polku juuresta ($).
  4. Kopioi raportti liittääksesi sen tikettiin tai koodikatselmukseen.

Näin se toimii

Molemmat dokumentit jäsennetään ja vertaillaan datana, ei tekstinä. Objektit vertaillaan avain kerrallaan, joten avainten järjestyksellä, tyhjillä merkeillä tai sisennyksillä ei ole merkitystä. Numerot vertaillaan arvon perusteella, joten 1 ja 1.0 ovat yhtä suuret.

Jokaisella erolla on polku, joka kirjoitetaan JSONPath-lausekkeen tapaan: $ on juuri, .name on ominaisuus, [2] on taulukon indeksi, ja avaimet, jotka eivät ole yksinkertaisia nimiä, lainataan, kuten $[\"first-name\"]. Eroista ilmoitetaan neljää lajia: lisätty (vain oikealla), poistettu (vain vasemmalla), muuttunut (sama tyyppi, eri arvo) ja tyyppi muuttunut (esimerkiksi numero 44.9 muuttui merkkijonoksi \"44.90\" tai arvosta tuli null). Kun kokonainen objekti tai taulukko lisätään tai poistetaan, siitä ilmoitetaan kerran omassa polussaan eikä jokaisesta kentästä erikseen.

Taulukot vertaillaan oletuksena sijainnin perusteella: alkio 0 alkion 0 kanssa, alkio 1 alkion 1 kanssa. Jos alkuun lisätään alkio, kaikki myöhemmät alkiot näyttävät muuttuneilta. ”Sovita siirretyt kohteet” kohdistaa ensin taulukot pisimmän yhteisen samojen alkioiden osajonon avulla, jolloin lisäys tai poisto ilmoitetaan vain kerran ja loput alkiot yhdistetään pareiksi. Lisätyt alkiot käyttävät indeksiään oikealla, poistetut alkiot indeksiään vasemmalla. Täsmäytys ohitetaan erittäin suurissa taulukoissa (yli noin 2 miljoonaa alkioparia), jotka sen jälkeen vertaillaan sijainnin mukaan.

Luettelon avainpolut lajitellaan aakkosjärjestykseen kunkin objektin sisällä. Eroja näytetään enintään 2 000; kopioitu raportti sisältää aina kaikki erot.

Esimerkit

API-muutoksen tarkistaminen

Vertaa eilisen ja tämän päivän vastausta samalle tilaukselle. Erot näyttävät, että $.status muuttui “pending” → “shipped”, $.total tyyppi muuttui numerosta merkkijonoksi, $.coupon poistui ja $.customer.phone lisäytyi.

Konfiguraation ajautuminen

Liitä JSON-konfiguraatio staging- ja tuotantoympäristöstä. Koska avainten järjestys jätetään huomiotta, vain todelliset erot, kuten $.cache.ttl 300 → 60, näkyvät, vaikka tiedostot olisi tallennettu eri työkaluilla.

Luettelot, joihin on lisätty kohde

Tuoteluetteloon lisättiin uusi ensimmäinen kohde. Sijainnin perusteella jokainen tuote näyttää muuttuneen; “Match moved items” -toiminnolla tulos on yksi “Added $[0]”.

Usein kysytyt kysymykset

Miten tämä eroaa tekstivertailusta?

Tekstivertailu vertailee rivejä, joten avainten järjestyksen muuttaminen tai uudelleenmuotoilu näkyy muutoksina. Tämä työkalu vertailee jäsennettyä dataa, joten vain arvojen, tyyppien ja rakenteen erot raportoidaan.

Miksi taulukossa näkyy useita muutoksia yhden lisäyksen jälkeen?

”Sijainnin mukaan” -tilassa kohteita verrataan samassa indeksissä, ja lisäys siirtää kaikkia myöhempiä kohteita. Vaihda ”Täsmäytä siirretyt kohteet” -tilaan, jotta samanlaiset kohteet kohdistetaan ensin.

Käsitelläänkö ”1” ja 1 samanarvoisina?

Ei. Toinen on merkkijono ja toinen numero, joten ero ilmoitetaan tyyppimuutoksena. Samantyyppisiä arvoja verrataan tarkasti.

Voinko verrata erittäin suuria tiedostoja?

Muutaman megatavun tiedostot toimivat, mutta kaikki käsitellään selaimesi muistissa, joten erittäin suuret tiedostot voivat olla hitaita puhelimilla.

Tietosuoja

Molemmat asiakirjat jäsennetään ja verrataan vain selaimessasi. Mitään ei ladata, tallenneta tai sisällytetä analytiikkaan.