Confronta JSON

Confronta valori JSON e individua aggiunte, rimozioni e modifiche.

I tuoi file vengono elaborati qui, sul tuo dispositivo

Non inviamo il tuo file o il contenuto del testo a un server di elaborazione. Non è necessario alcun conto e non vi è alcuna quota operativa giornaliera. I singoli strumenti hanno limiti di dimensione per proteggere la memoria del dispositivo.

È necessaria una connessione per caricare il sito e le sue risorse. L'hosting potrebbe ricevere dati tecnici sulle visite. Preferiti memorizzare solo gli identificatori di strumento in questo browser.

Come trattiamo i tuoi dati →

Come utilizzare questo strumento

  1. Incollare documenti originali e nuovi nei rispettivi campi.
  2. Applicare per confrontare tipi, valori, chiavi e indici.
  3. Ispezionare i percorsi dei report e scaricare le differenze se è necessario conservarli.

Un esempio che puoi verificare

Identificare un cambiamento di valore senza confonderlo con l'ordine di proprietà.

Esempio di input

Original: {"name":"Ana","active":true}
New: {"active":true,"name":"Luis"}

ImpostazioniConfronto strutturale.

Risultato atteso

[{"path":"/name","change":"changed","before":"Ana","after":"Luis"}]

C'è una differenza. Spostarsi attivo non aggiunge un altro. Il rapporto utilizza i percorsi JSON Pointer e non è una patch eseguibile.

Confronta JSON: usi e guida pratica

Il confronto strutturale JSON separa i cambiamenti dei dati dai cambiamenti della presentazione. I documenti con rientro diverso o con oggetti ordinati in modo diverso possono rappresentare esattamente gli stessi valori. Lo strumento analizza entrambi i documenti e li confronta. Quando nulla differisce, il rapporto è un array vuoto e il contatore visualizza zero. Ciò non significa che i file originali siano identici byte-for-byte: lo spazio bianco, le terminazioni di riga o la notazione numerica possono differire producendo lo stesso valore interpretato. Utilizzare un confronto di testo semplice quando tali dettagli di rappresentazione sono oggetto della revisione.

Gli array sono confrontati per posizione. Scambiare due elementi può produrre diverse modifiche anche quando entrambi gli elementi sono ancora presenti. Gli oggetti non vengono abbinati automaticamente attraverso campi come id e lo strumento non calcola una sequenza minima di modifiche di elenco. Per confrontare i set non ordinati, preparare prima una rappresentazione ordinata da una chiave esplicita appropriata ai dati. I tipi contano anche: 1 differisce da "1", false non è equivalente a 0, e un membro mancante differisce da un membro presente con null. La sostituzione di un intero oggetto con una stringa viene riportata come un cambiamento di valore in quel percorso piuttosto che come modifiche a ogni precedente bambino.

Ogni differenza contiene percorso e cambiamento. I membri aggiunti includono dopo, i membri rimossi includono prima e i valori modificati includono entrambi. I percorsi utilizzano la sintassi testuale di JSON Pointer: le barre e le tilde nei nomi dei membri vengono evase come 1 e 0. Un percorso vuoto indica la radice quando l'intero documento cambia tipo o valore. Il report è descrittivo e non utilizza il formato JSON Patch; non eseguirlo come sequenza di istruzioni per aggiornare un altro documento. Conservare entrambi gli originali in modo da poter ripetere il confronto e ispezionare il contesto che circonda ogni differenza riportata prima di apportare una modifica altrove.

Il parsing rifiuta le chiavi duplicate e gli interi la cui grandezza non può essere rappresentata in modo sicuro. JSON utilizza la precisione numerica del browser; i sistemi originari dovrebbero utilizzare stringhe per gli identificatori lunghi, mentre i calcoli decimali esatti richiedono un sistema specifico per il dominio appropriato. Ogni documento supporta fino a un milione di caratteri e cento livelli di nidificazione. Se si verificano più di mille differenze, l'operazione richiede sezioni più piccole piuttosto che presentare un rapporto incompleto che sembra completo. Prima di rivedere una risposta lunga, prova un nome modificato, un membro rimosso e un array riordinato per capire come questi casi appaiono nell'output e quali dettagli rimangono rilevanti per il confronto.

Opzioni e limiti

Incolla due documenti JSON validi. L’ordine delle proprietà di un oggetto non conta; quello degli array sì. Le differenze sono indicate con percorsi JSON Pointer. Chiavi duplicate e interi oltre la precisione sicura vengono rifiutati. Limiti: 1 milione di caratteri per documento, 100 livelli e 1.000 differenze.

Domande frequenti

Un numero è uguale a una stringa?

No. Il numero 1 differisce dalla stringa "1". I cambiamenti di indentazione non contano come differenze.

Guide