Vai al contenuto principale

Comparatore JSON

Confronta due documenti JSON e individua le differenze strutturali. L’elaborazione resta locale nel browser.

  • Appunti
  • Esporta

Integra questo widget

Personalizza il risultato, controlla l’anteprima e copia il codice.

Anteprima

Tipo di codice di integrazione

Codice da copiare

Responsive e ridimensionato automaticamente da Bethemesh.

Questo strumento ti è stato utile?

Come funziona questo strumento?

Confronta due documenti JSON dopo aver normalizzato presentazione e ordine delle proprietà. Una risposta API su una riga può equivalere alla stessa risposta con rientri diversi. Tipi e ordine degli array restano significativi: "1" non è il numero 1 e una lista riordinata è diversa. Entrambe le sorgenti rimangono nel browser. L’output è un rapporto testuale, non un nuovo documento JSON né una patch da applicare automaticamente.

Entrambi gli input devono rispettare la sintassi JSON. Il motore analizza i valori, ordina ricorsivamente le chiavi degli oggetti e serializza con una disposizione comune. Spazi di presentazione e ordine scritto delle proprietà non creano più differenze artificiali. Gli spazi dentro le stringhe rimangono significativi.

Gli array non vengono ordinati e i loro oggetti non sono abbinati tramite identificatore. Spostare una voce resta una differenza. Stringhe, numeri, booleani e null sono confrontati come valori analizzati. Una chiave assente differisce da null. Nomi duplicati seguono la lettura JSON, mantenendo l’ultima occorrenza; evita questa rappresentazione ambigua.

Se le forme normalizzate differiscono, ogni riga viene confrontata con la stessa posizione nell’altra sorgente. - indica il primo input e + il secondo; righe comuni iniziano con spazi. Un inserimento può spostare più righe e produrre un rapporto più lungo del cambiamento logico minimo. Non è un diff semantico per percorsi né JSON Patch.

Interi fuori dall’intervallo sicuro JavaScript e numeri non finiti vengono rifiutati per evitare false equivalenze dopo arrotondamento. I decimali restano soggetti alla precisione del browser. Usa stringhe contrattuali per identificatori lunghi e un confronto testuale per le scritture esatte.

Come usare questo strumento

  1. Fornisci le due versioni

    Incolla o importa ogni documento separatamente. Metti prima il riferimento per leggere - come valore precedente e + come nuovo.

  2. Esegui il confronto normalizzato

    Leggi il messaggio di equivalenza o il rapporto. Un rifiuto numerico indica un limite di rappresentazione, non una differenza calcolata.

  3. Controlla il contesto ed esporta

    Esamina righe vicine prima di assumere più cambiamenti indipendenti. Copia o scarica il rapporto .txt. Modificare una sorgente nasconde l’output precedente.

Casi d’uso

Confrontare risposte API

Escludi differenze di presentazione per esaminare valori modificati. Mantieni l’ordine quando le posizioni dell’array appartengono al contratto.

Rivedere configurazione JSON

Confronta riferimento e modifica senza confondere rientri e dati. I commenti JSON5 non sono supportati.

Rilevare una conversione di tipo

Trova numeri diventati stringhe o booleani sostituiti da testo anche quando l’aspetto sembra simile.

Esempi

Ignorare l’ordine delle proprietà

Gli oggetti hanno chiavi e valori identici. L’ordine differente non introduce differenze strutturali dopo la normalizzazione.

Input

{"b":2,"a":1}
{"a":1,"b":2}

Risultato

I documenti JSON sono equivalenti.

Distinguere numero e stringa

La riga rimossa contiene un numero e quella aggiunta una stringa. Le virgolette rappresentano un cambiamento reale di tipo.

Input

{"id":1}
{"id":"1"}

Risultato

  {
-   "id": 1
+   "id": "1"
  }

Consigli e buone pratiche

  • Rimuovi campi variabili solo se lo scopo lo giustifica: i timestamp non vengono ignorati automaticamente.
  • Un rapporto lungo può dipendere da righe spostate. Trova prima la divergenza iniziale.
  • Usa il comparatore di fogli per abbinare righe tramite chiavi invece che posizioni.
  • Due documenti equivalenti possono violare entrambi un contratto API. Verifica separatamente lo schema.

Fonti e riferimenti

Domande frequenti

Perché file presentati diversamente sono equivalenti?

Si confrontano valori dopo ordinamento delle proprietà e presentazione comune. Spazi esterni e ordine delle chiavi non cambiano il valore di un oggetto.

Gli array sono confrontati ignorando l’ordine?

No. L’ordine resta significativo. Il motore non cerca campi id e non abbina automaticamente oggetti spostati.

Posso applicare il rapporto come JSON Patch?

No. I segni - e + descrivono un rapporto testuale su documenti normalizzati. Non contiene operazioni e percorsi JSON Patch.

Perché vengono rifiutati alcuni numeri grandi?

JavaScript potrebbe arrotondare interi diversi allo stesso valore. Il rifiuto impedisce una falsa equivalenza. Usa stringhe per identificatori quando il contratto lo consente.

Strumenti correlati

Strumenti simili o complementari a questo.

Strumenti simili

Formatta, minifica e valida un documento JSON per renderlo più leggibile o compatto.

SviluppoIn evidenzaUsa questo strumento

Valida un documento JSON con uno schema e individua con precisione ogni errore.

SviluppoIn evidenzaUsa questo strumento