Vai al contenuto

Confronto fra due JSON

JSON Diff

Confronta due documenti JSON per struttura, ignorando l’ordine delle chiavi e riportando i percorsi aggiunti, tolti e cambiati.

Confronta due documenti JSON in modo strutturale invece che come testo, così una chiave riordinata o un’indentazione diversa non sono una differenza. L’uscita è sia una tabella leggibile di che cosa è cambiato sia una patch RFC 6902 che trasforma esattamente il documento di sinistra in quello di destra.

🔒 Funziona interamente nel tuo browserjsondiffcompare
Array

Prima allinea i due array, così un inserimento vale una modifica e non cento.

Sinistra

Destra

Come si usa

  1. Incollare entrambi i documenti

    Due risposte di API, due configurazioni, un prima e un dopo. Il confronto gira in un worker e si aggiorna mentre si scrive.

  2. Scegliere come confrontare gli array

    È l’impostazione che decide se il risultato sia utile. Allinea mette prima in corrispondenza i due array, così inserire un elemento è una sola modifica. Per indice confronta posizione per posizione, che è giusto quando l’ordine è il dato. Per chiave accoppia gli elementi su un membro indicato per nome: la risposta quando due risposte elencano le stesse cose in ordine diverso.

  3. Decidere se null significhi assente

    Alcuni serializzatori omettono un campo vuoto e altri scrivono `null`. Se si confronta l’uscita di due stack diversi, accendere questa opzione toglie una pagina di differenze false.

  4. Prendere la tabella, oppure la patch

    La tabella serve a leggere; la patch serve ad applicare. I percorsi in entrambe sono puntatori RFC 6901, quindi si incollano in qualunque strumento che parli JSON Patch.

Domande frequenti

Perché un solo elemento inserito in un array compare come cento modifiche?

Perché la modalità array è Per indice, quindi l’elemento 1 viene confrontato con l’elemento 2 e tutto si sposta. Meglio passare ad Allinea, che mette prima in corrispondenza gli array, oppure a Per chiave se gli elementi hanno un id.

Si può applicare la patch qui?

No, questa pagina la produce soltanto. Ma la patch è esatta: applicarla al documento di sinistra dà quello di destra byte per byte nel modello di dati, ed è quel giro completo che la suite di test verifica a ogni modifica.

Dice che i due documenti non sono imparentati.

Quel messaggio compare quando il confronto supera le ventimila modifiche e si ferma. A quel punto il diff non dice più niente di utile: si stanno confrontando due documenti diversi, non due versioni dello stesso.

L’ordine delle chiavi conta mai?

Non per questo strumento: gli oggetti JSON non sono ordinati, quindi due documenti che differiscono solo nell’ordine delle chiavi vengono riportati come identici. Se l’ordine delle chiavi conta per chi li consuma, quel consumatore si sta appoggiando a qualcosa che JSON non promette.

Può ricevere da

Dopo

Questi accettano ciò che produce questo strumento, così il risultato può passare direttamente.