JSON Diff: vertaa JSON-objekteja
Liitä kaksi JSON-dokumenttia ja näe tarkalleen, mikä muuttui. Jokainen ero listataan polun mukaan, kuten $.users[2].email, eikä muotoilu tai avainten järjestys aiheuta vääriä hälytyksiä.
Toimii selaimessaEi rekisteröitymistäMitään ei lähetetä
Muuttuneet polut
| Muutos | Polku | Vanha arvo | Uusi arvo |
|---|
Näin käytät työkalua: JSON Diff
- Liitä alkuperäinen JSON vasemmalle ja muokattu JSON oikealle, tai avaa kaksi tiedostoa.
- Syntaksivirheet näytetään kunkin kentän alla rivin ja sarakkeen kera, joten voit korjata ne nopeasti.
- Lue Muuttuneet polut -taulukko: jokainen rivi kertoo, onko arvo lisätty, poistettu vai muutettu, sekä vanhan ja uuden arvon.
- Valitse Ohita taulukoiden järjestys, kun listat ovat joukkoja, esimerkiksi tagit tai oikeudet.
- Vieritä rinnakkaisnäkymään nähdäksesi muutokset asiayhteydessään, tai kopioi muutoslista JSONina.
Miksi rakenteellinen JSON-vertailu on tekstivertailua parempi
Tavallinen tekstivertailu vertaa merkkejä ja rivejä, joten kaksi samaa dataa sisältävää JSON-tiedostoa voivat näyttää täysin erilaisilta, jos toinen on pienennetty, eri tavoin sisennetty tai avaimet ovat eri järjestyksessä. Tämä työkalu jäsentää ensin molemmat dokumentit ja vertaa dataa: objekteja verrataan avain kerrallaan järjestyksestä riippumatta, ja numeroita, merkkijonoja, totuusarvoja ja null-arvoja verrataan arvon perusteella. Vain todelliset muutokset raportoidaan.
Miten muutokset raportoidaan
Jokainen ero saa JSONPath-tyylisen sijainnin, kuten $.owner.email tai $.items[3].price, ja yhden kolmesta tyypistä:
- lisätty: avain tai taulukon alkio on vain muokatussa JSONissa.
- poistettu: se on vain alkuperäisessä JSONissa.
- muutettu: se on molemmissa, mutta arvo eroaa, mukaan lukien tyypin muutokset, kuten merkkijonon muuttuminen numeroksi.
Taulukot kohdistetaan pisimmän yhteisen alijonon algoritmilla, joten yhden alkion lisääminen listan alkuun raportoidaan yhtenä lisäyksenä sen sijaan, että jokainen seuraava alkio merkittäisiin muuttuneeksi.
Taulukoiden järjestyksen ohittaminen
Monet API:t palauttavat listoja, joiden järjestyksellä ei ole merkitystä, kuten roolit, tagit tai tunnisteet. Kun Ohita taulukoiden järjestys on päällä, taulukoita verrataan kokoelmina: alkio lasketaan lisätyksi tai poistetuksi vain, jos toisella puolella ei ole sille samaa vastinetta. Rinnakkaisnäkymä lajittelee tällöin taulukon alkiot, jotta samat listat asettuvat kohdakkain.
Tyypillisiä käyttötapoja
Vertaa API-vastauksia staging- ja tuotantoympäristön välillä, tarkista mitä migraatio muutti asetustiedostossa, käy läpi kahden package.json- tai tsconfig-tiedoston erot ja debuggaa snapshot-testejä.
Usein kysytyt kysymykset
Onko avainten järjestyksellä merkitystä JSONia verrattaessa?
{"a":1,"b":2} ja {"b":2,"a":1} raportoidaan samoiksi. Taulukoiden järjestyksellä on oletuksena merkitystä, koska taulukot ovat järjestettyjä, mutta voit kytkeä sen pois asetuksella Ohita taulukoiden järjestys.Lähetetäänkö JSONini palvelimelle?
Mitä polut kuten $.users[2].email tarkoittavat?
$ on dokumentin juuri, .users on avain ja [2] on taulukon kolmas alkio (indeksit alkavat nollasta). Välilyöntejä tai erikoismerkkejä sisältävät avaimet kirjoitetaan hakasulkeisiin, kuten $["first name"].Onko 1 sama kuin 1.0?
1 ja "1", ovat eri arvoja ja raportoidaan muuttuneina.