CoreJSON

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.

Open in the workbench Runs locally · nothing is uploaded

How to use it

  1. 1

    Paste flat JSON

    Put a single-level object with dotted path keys into the input.

  2. 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. 3

    Adjust the output

    Pick an indentation and decide whether to recursively sort keys.

  4. 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