Markdown Table to JSON converts GitHub-Flavored Markdown tables into JSON arrays of objects. The header row provides the keys, the separator row (---|---) is skipped, and each data row becomes an object.
Markdown tables are common in README files, documentation, and issue trackers. This tool lets you quickly extract structured data from them without manual parsing. Just paste the table and get clean JSON.
The converter handles leading/trailing pipes, alignment colons in separators (:---:), and auto-detects numbers, booleans, and null values. All processing runs in your browser.
| Name | Age | City |
|-------|-----|----------|
| Alice | 30 | New York |
| Bob | 25 | London | // Converts to:
[ { "Name": "Alice", "Age": 30, "City": "New York" }, { "Name": "Bob", "Age": 25, "City": "London" }
]// Common in API documentation:
| Endpoint | Method | Auth |
|-------------|--------|----------|
| /api/users | GET | Bearer |
| /api/login | POST | None | // Convert to JSON for programmatic useUseful for extracting structured data from documentation tables in Git repos.
Separator row formatting like :---:, :---, or ---: is used for column alignment in rendered Markdown but is stripped during parsing. It doesn't affect JSON output.
Markdown tables use | as the column delimiter. If a cell value contains a literal pipe, it may be misinterpreted as a column boundary. Escape it as \| in your Markdown source.
Only lines containing pipe characters are processed. Text before or after the table is ignored, so you can paste a full Markdown document and the tool will find the table.
Paste a Markdown table with pipe-delimited columns, a separator row (---|---), and data rows. Click "Convert to JSON" to get a JSON array of objects.
Standard GitHub-Flavored Markdown (GFM) tables with header row, separator row, and data rows. Both leading/trailing pipes and alignment colons are handled.
Yes. The tool extracts only lines containing pipe characters, so surrounding text is ignored. It will find the first table in your input.
Yes. All processing happens in your browser. No data is sent to any server.