Indented Outline to JSON
Turn an indented outline or bullet list into nested JSON. Reads spaces, tabs and Markdown bullets, with custom key names and a flat depth option.
What is the Indented Outline to JSON?
Indented Outline to JSON converts a plain indented list into a structured tree you can use in code. Each line becomes a node, and the amount of leading whitespace decides which node it belongs to, so a hand-typed outline turns into proper nested JSON in one step.
- Builds a nested tree from leading-whitespace depth
- Strips Markdown bullets and numbered list markers
- Handles inconsistent indentation without failing
- Custom title and children key names
- Flat output option with a depth number per item
- Shows item count, top-level count and nesting depth
How to use the Indented Outline to JSON
- 1
Paste your indented outline, one item per line, indenting children beneath their parent.
- 2
Choose a nested tree with a children array, or a flat list where each item has a depth.
- 3
Rename the title and children keys if your code expects different names.
- 4
Set the tab width and JSON indentation to match your project.
- 5
Copy the JSON or download it as a .json file.
About the Indented Outline to JSON
Indented Outline to JSON converts a plain indented list into a structured tree you can use in code. Each line becomes a node, and the amount of leading whitespace decides which node it belongs to, so a hand-typed outline turns into proper nested JSON in one step.
Markdown bullets, asterisks, plus signs and numbered items are all recognised and stripped from the text. Indentation does not need to be perfectly consistent: a line indented slightly differently attaches to the nearest sensible parent instead of throwing an error. You can rename the title and children keys, or switch to a flat list where every item carries a depth number.
The conversion runs entirely in your browser, so nothing is uploaded. Sketch out a site map, a menu structure or a table of contents privately and copy the JSON straight into your project. Counts for total items, top-level items and nesting depth are shown alongside the output, which makes it quick to confirm the tree came out the shape you intended.
Frequently asked questions
How do I convert an indented list into JSON?
Paste the list with children indented under their parents and the nested JSON appears immediately. Use spaces or tabs — just keep the same style within one document for the cleanest result.
Does it handle Markdown bullet lists?
Yes. Dashes, asterisks, plus signs and numbered items such as 1. or 1) are recognised as bullets and removed, so only the item text ends up in the JSON.
What happens if my indentation is inconsistent?
The parser attaches each line to the nearest shallower item rather than failing. You still get valid JSON, though tidying the indentation first will give you the structure you actually intended.
Can I change the JSON key names?
Yes. Set the title and children keys to whatever your code expects. If you pick a flat output instead, each item gets your title key plus a numeric depth field.
Should I mix tabs and spaces?
Try not to. Tabs are expanded using the tab width you set, so mixing the two can put items at depths you did not expect. Sticking to one style makes the tree predictable.
Related tools
List to JSON Array Converter
Convert a list of lines into a JSON array of strings, numbers or objects, with trim, dedupe and pretty-print options plus a reverse mode.
JSON Formatter
Format, beautify and minify JSON online with 2-space, 4-space or tab indentation. Sort keys alphabetically and catch syntax errors instantly — free and private.
JSON Validator
Free online JSON validator: validate JSON and find syntax errors with the exact line and column. See root type, key counts and depth — instant and 100% private.
Markdown Table Formatter
Format and align Markdown tables so every column lines up. Fixes ragged rows, rebuilds the divider and sets left, centre or right alignment.
Text Column Aligner
Line up messy text into neat columns. Split on whitespace or a delimiter and align left, right, centre or on the decimal point.