JSON

JSON Path Extractor / Flatten

Appiattire (Flatten) un JSON annidato in un elenco piatto "percorso: valore" e ricostruirlo in una struttura annidata (Unflatten). La notazione del percorso è la stessa usata in JSONPath/JSON Diff: store.book[0].price.

Deeply nested JSON is hard to compare or iterate over programmatically. Flatten unrolls such a structure into a flat list of "path: value" pairs (e.g. store.book[0].price: 12.99), and Unflatten rebuilds it.

How to use it

Common uses

Things to keep in mind

Array index notation varies between libraries — this tool uses items[0], though some write items.0 without brackets.

Unflatten requires that paths don't conflict with each other (e.g. one and one.two at the same time) — otherwise the structure can't be unambiguously rebuilt.

Articolo su questo strumento: JSON Flatten: trasformare una struttura annidata in una lista piatta

Domande frequenti

Cosa significa "appiattire" un JSON?

Significa trasformare una struttura JSON annidata in un elenco piatto di coppie percorso: valore, usando la notazione a punti e parentesi, ad esempio store.book[0].price.

Posso tornare alla struttura originale dopo averla appiattita?

Sì, lo strumento supporta anche l'operazione inversa (unflatten), che ricostruisce la struttura annidata originale a partire dall'elenco piatto.

Come vengono rappresentati gli elementi di un array nel percorso?

Diventano chiavi indicizzate tra parentesi quadre, come [0] e [1], concatenate al resto del percorso.

Cosa succede se una chiave reale contiene essa stessa un punto?

È una situazione ambigua: il percorso user.name può significare sia un oggetto annidato {"user": {"name": ...}}, sia una chiave piatta {"user.name": ...}. La notazione a punti non distingue i due casi, quindi queste chiavi andrebbero evitate o gestite separatamente.

Il formato dei percorsi è lo stesso in tutti gli strumenti simili?

No. La notazione a punti per gli oggetti (user.name) è diffusa praticamente ovunque, ma la notazione per gli indici degli array varia: qui si usa items[0], mentre alcune librerie scrivono items.0 senza parentesi.

Articoli: JSON