Due documenti che contengono gli stessi dati in un ordine di chiavi diverso sono impossibili da confrontare con un diff di testo puro. La configurazione scritta a mano e la configurazione scritta da un programma quasi mai concordano sull’ordine, e ordinare entrambi allo stesso modo e cio che li rende confrontabili di nuovo.
Usare l’ordinatore di chiavi JSON
Scegli un ordine, A a Z o Z a A, una larghezza di indentazione, e premi Ordina chiavi. Solo le chiavi degli oggetti si spostano. Un array viene lasciato esattamente come e stato scritto, perche l’ordine di un array e parte dei dati che contiene, non un accidente di come e stato digitato, e uno strumento che riordinerebbe silenziosamente gli array cambierebbe il significato del documento mentre finge solo di mettere in ordine.
Ordinamento di
{"item10":"a","item2":"b","Zebra":"c","apple":"d","list":[3,1,2]}
per default restituisce le chiavi in ordine esatto del codice carattere:
Zebra prima di apple (le lettere maiuscole si ordinano prima delle
minuscole), e item10 prima di item2 ("1" e un carattere piu piccolo
di "2"). L’array [3, 1, 2] ritorna completamente intatto.
L’opzione “Numeri in ordine”
L’ordine per codice carattere e il motivo per cui item10 si ordina prima
di item2: il confronto guarda un carattere alla volta e non si accorge
mai che 10 e piu grande di 2. Attivare “Numeri in ordine” legge le
sequenze di cifre come numeri invece, cosi item2 viene correttamente
prima di item10. Questo e scritto esplicitamente nello strumento invece
di essere delegato al confronto sensibile alla localizzazione del
browser, perche un confronto che segue la lingua della pagina ordinerebbe
esattamente lo stesso file diversamente sulla pagina hindi rispetto a
quella inglese, e uno strumento che mette in ordine un documento deve
dare la stessa risposta indipendentemente da chi lo usa.
Chiavi duplicate
Un documento con una chiave duplicata conserva entrambe le copie, affiancate,
dopo l’ordinamento. Questo strumento non decide quale sia “corretta” nel
modo in cui farebbe un approccio basato su JSON.parse tenendo
silenziosamente solo l’ultima; ordina cio che c’e e lascia la decisione
sulla duplicata a te, o al validatore JSON,
che la segnalerà come un avviso.
Perche l’ordinamento non modifica i tuoi dati
Ordinato o no, i valori, i loro tipi e il loro testo esatto sono identici. Questa e una comodita di visualizzazione e confronto, non una trasformazione del significato del documento, e per questo e sicuro ordinare un documento prima di confrontarlo nello strumento diff JSON senza temere che l’ordinamento stesso abbia introdotto una differenza.