JSON Unflatten
This tool unflattens a single-level object with dotted path keys back into nested JSON — for example turning user.name and user.tags[0] back into a name field under a user object and a tags array. The delimiter and array notation are configurable, and unflattening runs locally in your browser so nothing is uploaded.
How to use it
- 1
Paste flat JSON
Put a single-level object with dotted path keys into the input.
- 2
Choose delimiter and array style
These must match the settings used when the flat data was generated, otherwise the paths will not be split correctly.
- 3
Adjust the output
Pick an indentation and decide whether to recursively sort keys.
- 4
Copy the result
Get the restored nested JSON, or invert to flatten it again for a cross-check.
Key features
Path restoration
Keys such as a.b[0].c are expanded level by level back into objects and arrays.
Scalar root support
When the whole document is a scalar it is carried under an empty key, so it does not fail for lack of a path.
Selectable notation
Both bracket (tags[0]) and index (tags.0) array notations are supported.
Configurable delimiter
Use a dot, underscore, slash or dash to match however the flat data was originally produced.
Worker-based local compute
Restoration runs on a background thread in your browser and the data is not uploaded.
Free, no sign-in
Open and use it — no registration and no ads.
Common errors & troubleshooting
- ! The delimiter must match the one used when flattening; if unsure, generate a flat sample with the default settings of the flatten tool and restore it.
- ! If conflicting keys such as a and a.b both exist, the later one overwrites the earlier — check the data first.
- ! Keep the array notation consistent between flattening and unflattening so index keys rebuild into real arrays.
- ! Enabling key sorting produces a stable alphabetical structure when you need reproducible output.
Frequently asked questions
Does key order change after unflattening?
The top level is restored in insertion order; enabling key sorting yields a stable alphabetical structure.
How does this relate to flattening?
They are inverse operations: flattening turns nesting into path keys, and unflattening turns path keys back into nesting. The same page switches between both.
Is my data uploaded?
No. Restoration happens locally in your browser.
Why did my array not come back as an array?
The array notation used to build the keys must match the setting here. If bracket and index styles are mixed, pick the style the data was created with.
Related tools
JSON Flatten
Flatten nested JSON into a single-level object with path keys such as user.name, user.tags[0] and server.port. Configurable delimiter and array notation. Runs locally in your browser.
Properties to JSON
Convert Java .properties / i18n resource files into nested JSON. Line continuations, # and ! comments, \uXXXX escapes and = / : / whitespace separators are all supported. Runs locally.
JSON Formatter
Format, beautify and validate JSON in your browser. Errors point to the exact line and column, and you can indent with 2 spaces, 4 spaces or a tab.
JSON Key Sorter
Recursively sort object keys in alphabetical order when you format or minify JSON. Arrays keep their order. Get deterministic output for diffs, snapshots and config baselines.