Flatten nested JSON into dot-notation key-value pairs
A JSON flattener takes a nested JSON object and collapses it into a single flat list of key–value pairs, where each key is the full path to a value written in dot notation. A structure like {"user": {"address": {"city": "Paris"}}} becomes user.address.city = "Paris". Instead of values hidden several layers deep, you get one level where every leaf is reachable by a single descriptive key — the same idea behind environment variables and many configuration formats.
Flattening is what makes deeply nested data usable in places that expect a flat shape: spreadsheet columns, form fields, key-value stores, or a quick visual scan to find exactly where a value lives. It is also the easiest way to compare or search a sprawling object, because every value sits on its own line with its full path attached. Arrays are indexed in the path (items.0.name), so nothing is lost. This tool flattens in your browser, keeping your data private.
Each nested key is joined to its parent with a dot, so the path spells out exactly where a value sits. {"a": {"b": 1}} becomes a.b = 1. It is the same convention used to access nested properties in many programming languages.
Array elements are flattened using their index in the path, so items.0, items.1 and so on. This keeps every element addressable by a unique key and preserves order, rather than collapsing the array into a single field.
Yes, the process is reversible: because each flat key encodes the full path, an unflatten step can rebuild the original nested object. Keep the flat form for tables or search and reconstruct the nested form when a program needs it.
Nested JSON is great for programs but awkward for tables, diffs and quick lookups. Flattening puts every value on one line with a clear path, which is far easier to scan, compare, import into a spreadsheet or map to flat configuration.
JSON Formatter · JSON Minifier · JSON Validator · JSON to CSV · JSON ↔ YAML · JSON Compare