Vai al contenuto principale
CuteJSON
↑↓ Naviga Enter Seleziona Esc Chiudi

Come ordinare le chiavi JSON per un diff pulito

Pubblicato 2 min di lettura Di Akash Kinkar Pandey

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.

Torna a tutti i post