JSON
JSON Path Extractor / Flatten
Spłaszczanie (Flatten) zagnieżdżonego JSON do płaskiej listy "ścieżka: wartość" i odtwarzanie z powrotem struktury zagnieżdżonej (Unflatten). Notacja ścieżki jest taka sama jak w 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
- Flatten: paste nested JSON and get a flat list of every leaf value with its full path.
- Unflatten: paste a list of "path: value" pairs to rebuild a nested JSON structure from it.
- The path notation matches this site's JSONPath and JSON Diff tools — items[0].name for array elements.
Common uses
- Turning a deeply nested API response into a flat list for import into a spreadsheet or analytics system.
- Building a translation dictionary or config back into nested JSON from flat keys (form.errors.email).
- Quickly finding every value on a given topic in a very large JSON document via a flat path list.
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.
Artykuł o tym narzędziu: JSON Flatten: zamiana zagnieżdżonej struktury na płaską listę
Najczęstsze pytania
Co właściwie robi "spłaszczenie" (flatten) obiektu JSON?
Zamienia zagnieżdżone obiekty i tablice w obiekt jednopoziomowy z kluczami w notacji kropkowej lub nawiasowej (jak user.address.city czy items[0].id), ułatwiając odczyt głęboko zagnieżdżonych danych jako płaskiej tabeli lub import do arkuszy kalkulacyjnych.
Czy spłaszczony JSON można przekonwertować z powrotem do oryginalnej zagnieżdżonej formy?
Tak, o ile notacja kluczy jest spójna — odwrócenie procesu odtwarza oryginalną zagnieżdżoną strukturę, dzieląc każdą ścieżkę klucza z powrotem na obiekty i tablice.
Czy spłaszczanie traci jakiekolwiek informacje z oryginalnego JSON?
Nie. Każda wartość jest zachowywana; zmienia się tylko struktura, ponieważ każda unikalna zagnieżdżona ścieżka staje się swoim własnym płaskim kluczem.
Co się stanie, jeśli rzeczywisty klucz sam zawiera kropkę?
To sytuacja niejednoznaczna: ścieżka user.name może oznaczać zarówno zagnieżdżony obiekt {"user": {"name": ...}}, jak i płaski klucz {"user.name": ...}. Notacja kropkowa tego nie rozróżnia, więc takich kluczy lepiej unikać lub obsługiwać osobno.
Czy format ścieżek jest taki sam we wszystkich podobnych narzędziach?
Nie. Notacja kropkowa dla obiektów (user.name) jest powszechna praktycznie wszędzie, ale zapis indeksów tablic się różni: tutaj używane jest items[0], choć niektóre biblioteki piszą items.0 bez nawiasów.