Confrontare JSON ignorando l’ordine delle chiavi

Due oggetti JSON possono essere equivalenti anche se le proprietà sono in un ordine diverso. Un confronto testuale considera il riordino innocuo come una modifica; un confronto semantico no.

Oggetti e array seguono regole diverse

L’ordine delle proprietà di un oggetto non ha significato semantico, quindi le proprietà vanno abbinate per nome. L’ordine di un array di solito è significativo e ogni valore resta legato al suo indice, salvo che l’applicazione definisca un’altra regola di identità.

Appiattisci i valori in percorsi stabili

Percorsi come $.cliente.indirizzo.citta o $.articoli[2].prezzo forniscono una coordinata stabile per ogni valore primitivo. Confrontarli rivela aggiunte, rimozioni e variazioni di valore senza il rumore di rientri e ordine delle chiavi.

  1. Analizza prima entrambi i documenti.
  2. Ordina le chiavi degli oggetti in modo deterministico.
  3. Conserva gli indici degli array.
  4. Confronta il valore in ogni percorso risultante.

Riconosci quando serve una pre-elaborazione

Date generate, ID di richiesta e array non ordinati possono richiedere una regola esplicita per ignorare o ordinare. Applica e documenta queste regole prima del confronto; altrimenti il risultato non potrà essere riprodotto.

Privacy fin dalla progettazione

Funziona nel tuo browser

I file non vengono mai caricati

Funziona senza account