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

Come appiattire JSON in percorsi e valori, e tornare indietro

Pubblicato 2 min di lettura Di Akash Kinkar Pandey

Appiattire e cio di cui un documento annidato ha bisogno prima di poter incontrare qualcosa che non ha il concetto di annidamento: un file di ambiente, una colonna di un foglio di calcolo, un catalogo di traduzioni, qualsiasi cosa costruita da coppie chiave-valore senza struttura propria.

Usare l’appiattitore JSON

Scegli una direzione e uno stile di percorso, dato che non esiste un unico standard per come un percorso appiattito dovrebbe essere scritto. Tre forme sono offerte, a.b.0, a/b/0 e a.b[0], e lo strumento indica quale e in uso invece di sceglierne una silenziosamente.

Appiattimento di

{"user":{"name":"Ana","tags":["a","b"]},"empty":{}}

con lo stile puntato restituisce:

{
  "user.name": "Ana",
  "user.tags.0": "a",
  "user.tags.1": "b",
  "empty": {}
}

Le chiavi annidate diventano percorsi puntati, gli elementi dell’array ricevono il loro indice aggiunto, e l’oggetto vuoto viene mantenuto come valore di per se invece di sparire, perche senza di esso non ci sarebbe nulla a cui dare un percorso e il documento non sopravviverebbe al viaggio di ritorno.

Due casi genuinamente ambigui, gestiti alla luce

Una chiave che contiene gia il carattere separatore produrrebbe un percorso che nessuno potrebbe rileggere correttamente, quindi lo strumento lo rifiuta per nome: una chiave come "a.b" nello stile puntato viene rifiutata con un messaggio che nomina la chiave e suggerisce uno stile di percorso diverso, invece di produrre silenziosamente un percorso rotto.

Nell’altra direzione, disappiattendo, un segmento di percorso composto solo da cifre potrebbe significare sia un indice di array sia una chiave dell’oggetto che e numerica, e nulla in un documento appiattito dice quale. “Le cifre sono indici dell’array” e un interruttore esattamente per questa ragione: indovinare male trasforma un oggetto con chiavi per anno in un array con migliaia di slot vuoti.

Viaggio di ritorno

Disappiattire l’esempio sopra, con lo stesso stile di percorso, restituisce il documento originale esatto: l’oggetto annidato, l’array a due elementi nel suo ordine originale, e l’oggetto vuoto preservato invece di eliminato. Questo viaggio di ritorno e la vera prova che i punti e gli indici di uno stile di percorso sono stati letti correttamente, perche un’ipotesi errata sull’indicizzazione degli array di solito appare solo quando converti di ritorno e confronti con l’originale.

Mantenere i contenitori vuoti

Disattivare questo elimina gli oggetti e gli array vuoti completamente invece di mantenerli come voci appiattite, il che e utile quando la forma appiattita sta andando da qualche parte che non puo contenere un valore vuoto affatto, come certi formati di file di ambiente.

Torna a tutti i post