Unnest deep JSON hierarchies into flat single-level key-value objects using dot notation
Transform deeply nested JSON objects into flat dot-notated key-value pairs.
Interactive Sample Data
| id | user.name | user.address.city | user.address.geo.lat |
|---|---|---|---|
| 1 | Grace Kerubo | Nairobi | -1.286389 |
| 2 | Peter Njoroge | Mombasa | -4.043477 |
How this tool works
Things that usually go wrong
- Arrays inside objects (e.g. tags: ['a','b']) are joined as a comma-separated string, not expanded into separate columns.
- Very deep nesting (10+ levels) produces very long column names.
Edge cases we tested
Indexed numerically ('roles.0', 'roles.1') or joined into a comma-separated string.
Preserved cleanly as null properties without crashing the recursion.
Escaped or handled with alternative delimiter (e.g. underscore notation).
Frequently Asked Questions
What is the separator between nested keys?
A dot ('.'). So {'address': {'city': 'Nairobi'}} becomes a column named 'address.city'.
Can it handle arrays of objects?
Yes. The input should be a JSON array at the top level. Each object in the array becomes one row in the output.
Related tools
Column to Comma-Separated List
Extract a CSV column and convert it to a comma-separated list for SQL IN clauses or code arrays.
Open Tool →Comma-Separated List to Column
Convert a comma-separated, line-separated, or SQL IN list into a single-column CSV.
Open Tool →Lines to CSV
Convert plain-text newline-delimited records into structured CSV tables.
Open Tool →