Markdown to JSON · 5 min read
Extract Markdown Tables from GitHub Issues and Pull Requests to JSON
GitHub Issues and Pull Requests are rich with structured data — release trackers, bug triage tables, feature comparison matrices, sprint planning boards — all written as Markdown tables. But once the table is inside an issue comment, you can't easily analyze, export, or transform that data. This guide shows how to extract Markdown tables from GitHub issues, PRs, and comments and convert them to JSON using the Markdown to JSON Converter.
Why Extract Data from GitHub Issues?
GitHub Issues are great for discussion but terrible for data extraction. Common scenarios where table extraction helps:
- Bug triage — a bug report issue with a severity/frequency/status table that you want to import into a tracking spreadsheet.
- Release planning — a PR description with a version comparison table (features, bug fixes, breaking changes).
- Sprint boards — a weekly progress issue with task tables that need analysis across sprints.
- Feature requests — community voting tables with rows of features, votes, and priority scores.
- Code review checklists — PR templates with checklist tables that track review status per file.
Instead of manually copying each row, paste the entire Markdown table into the converter and get structured JSON in seconds.
1. Extracting a Table from a GitHub Issue
Consider this bug triage table from a GitHub Issue comment:
| Bug ID | Component | Severity | Status | Reported By | |--------|-----------|----------|--------|-------------| | BUG-101 | Login | Critical | Open | @alice | | BUG-102 | Dashboard | High | In Progress | @bob | | BUG-103 | Search | Medium | Open | @charlie | | BUG-104 | Settings | Low | Fixed | @diana |
Copy the table text (including the header and separator rows), paste it into the converter, and get:
[
{"Bug ID": "BUG-101", "Component": "Login", "Severity": "Critical", "Status": "Open", "Reported By": "@alice"},
{"Bug ID": "BUG-102", "Component": "Dashboard", "Severity": "High", "Status": "In Progress", "Reported By": "@bob"},
{"Bug ID": "BUG-103", "Component": "Search", "Severity": "Medium", "Status": "Open", "Reported By": "@charlie"},
{"Bug ID": "BUG-104", "Component": "Settings", "Severity": "Low", "Status": "Fixed", "Reported By": "@diana"}
]
The header row becomes JSON keys, and each data row becomes an object. Ready for import into a spreadsheet, database, or data analysis tool.
2. Handling Multiple Tables
GitHub Issue comments often contain multiple tables. The converter detects all tables and provides three export options:
- Per-table JSON — each table as a separate JSON array, download one at a time.
- Combined JSON — all tables merged into a single JSON structure with table names as keys.
- ZIP download — all tables exported as individual JSON files in a single ZIP archive.
The ZIP option is ideal for large issues with many tables — download everything at once.
3. Extracting Data from Pull Request Descriptions
PR descriptions often include before/after comparison tables, performance benchmark results, or breaking change lists. The same process works — copy the Markdown table from the PR body:
| API Endpoint | Before (ms) | After (ms) | Improvement | |-------------|-------------|------------|-------------| | GET /users | 245 | 98 | 60% | | POST /orders | 412 | 156 | 62% | | GET /search | 890 | 234 | 74% |
The converter preserves the numeric values as strings. You can then use the JSON to Excel Converter to create performance charts from the extracted data.
Try the Free Markdown to JSON Converter
Extract Markdown tables from GitHub Issues, PRs, and comments to clean JSON. Multi-table, merge, and ZIP download. No signup needed.
Convert Markdown to JSON Now →Best Practices for GitHub Table Extraction
- Copy the raw table. Use GitHub's "Edit" mode on the comment to copy the raw Markdown. Rich-text copy sometimes adds extra formatting that can confuse parsers.
- Include the separator row. The
|---|---|row is essential for parsing. Without it, the converter won't recognize the content as a table. - Avoid merged cells. GitHub Markdown doesn't support merged cells. If the source table uses HTML or extended Markdown, simplify it to a flat table first.
- Clean up extra whitespace. GitHub comments sometimes have inconsistent spacing. The converter handles this, but cleaner input produces cleaner JSON.
- Use with JSON to Excel. After extracting the table to JSON, use JSON to Excel to create a spreadsheet for analysis or sharing with your team.
Frequently Asked Questions
How do I extract a Markdown table from a GitHub Issue to JSON?
Copy the Markdown table from the GitHub Issue comment, paste it into the Markdown to JSON converter. The tool automatically parses the table into a JSON array of objects. Supports multiple tables at once.
Can I extract tables from Pull Request descriptions?
Yes. Pull Request descriptions and comments use the same GitHub-Flavored Markdown table syntax. Copy any table from a PR body, diff comment, or review thread and paste it into the converter. The tool handles the same syntax.
What if a GitHub comment has multiple tables?
The converter automatically detects all Markdown tables in the pasted content. Each table becomes its own JSON array. You can export them separately, as merged JSON, or download all tables as a ZIP file.
Does the converter handle malformed tables from GitHub?
Yes. GitHub's Markdown parser is lenient, and the converter accounts for common formatting quirks — missing alignment rows, extra whitespace, empty cells, and inconsistent column widths.
Is my data safe with this converter?
100% safe. All processing happens in your browser. Your pasted Markdown data never leaves your computer. No server uploads, no storage, no tracking of your content.