Markdown Table → JSON Converter
Paste a Markdown table and get back clean, structured JSON — no server, no upload, nothing leaves your browser. This tool reads any standard GitHub-Flavored Markdown pipe table and converts it into an array of JSON objects (or arrays, or a keyed dictionary) that you can copy or download straight away.
It’s built for the direction most converters skip: going from a table you already have — in a README, a spec doc, a Notion export, an AI-generated response — back into data you can actually use in code. Need to go the other way, turning a CSV paste or a spreadsheet grid into a Markdown table instead? The Markdown table generator handles that side, and anything built there can be sent straight into this converter without retyping.
What it does
- Detects every table in a pasted block automatically. Paste a whole document and the tool finds each Markdown table inside it, even with unrelated text in between, and lets you flip between them with tabs.
- Multiple output shapes. Choose an array of objects (the common case), an array of arrays (just the raw rows), or a dictionary keyed by the first column — whichever shape your code expects. If you’re troubleshooting the resulting JSON’s structure, the JSON formatter is a quick way to pretty-print, validate, or minify it once you’ve got it.
- Key casing control. Column headers can be converted to camelCase, snake_case, or kebab-case automatically, or left exactly as written.
- Dot-notation nesting. A header like
address.citybecomes a nestedaddress: { city: ... }object in the output — handy for tables that already encode structure in their column names. - Type inference. Numbers, booleans, and empty cells are converted to real JSON types instead of staying as strings, with an option to turn this off if you want everything kept as text.
- Alignment awareness. The
:---,:---:,---:alignment markers in the table’s separator row are parsed and can be included in the output as metadata alongside the data. - Built-in validation. Ragged rows (too many or too few cells), duplicate header names, and tables with no data rows are flagged as clear warnings rather than silently mangled.
- CSV export too. Alongside the JSON output, you can download the same table as a clean CSV file — useful if you’re feeding it into a spreadsheet, or want to run it through the CSV cleaner first to fix formatting issues before converting.
- Send-to handoff. If you’ve got a table open in another local tool — the XLSX viewer after opening a spreadsheet, or the Merge CSVs tool after combining a few files — you can send it straight into this converter without retyping, and send the resulting table onward the same way.
How to use it
- Paste your Markdown table (or a larger block of text containing one or more tables) into the input box on the left.
- If more than one table is detected, use the tabs above the output to pick which one to convert, or check “convert all” to combine them into a single JSON object.
- Adjust the output shape, key casing, and type-inference settings in the sidebar until the JSON matches what you need.
- Copy the result with the copy button, or download it as a
.jsonor.csvfile.
Everything updates live as you type or change settings — there’s no separate “convert” button to click.
FAQ
Does this work with tables that have misaligned pipes or extra spaces?
Yes. The parser trims whitespace around each cell and doesn’t care whether your pipes line up visually — only that each row is pipe-delimited.
What happens if a row has the wrong number of columns?
It’s flagged as a warning rather than failing silently. Rows with too few cells are padded with empty values; rows with too many have the extras dropped, and you’ll see exactly which row and why.
Can I convert more than one table at once?
Yes — if your pasted text contains multiple tables, switch on “convert all” to combine them into one JSON object, with each table nested under its own key.
Does it handle escaped pipe characters inside a cell?
Yes, a backslash-escaped pipe (\|) inside a cell is treated as a literal character, not a column separator, matching standard GFM table syntax.
I need to compare two versions of the converted JSON — is there a tool for that?
Yes, the JSON diff tool will show you exactly what changed between two JSON files or pastes, field by field.
Is my data uploaded anywhere?
No. Parsing and conversion both happen entirely in your browser — nothing you paste is sent anywhere.