JSON to Markdown Table
Convert a JSON array of objects into a ready-to-paste Markdown table
Markdown table will appear hereβ¦About this tool
The JSON to Markdown Table converter takes a JSON array of objects β the shape of nearly every API response and database query result β and turns it directly into a GitHub-Flavored Markdown table, ready to paste into a README, pull request description, or documentation page. The column set is automatically derived as the union of keys across every object in the array, in first-seen order, so rows with occasional missing fields just render an empty cell instead of breaking the conversion. Values containing a literal pipe character or newline are automatically escaped so they can't break the table's structure. A live HTML preview renders alongside the generated Markdown, so you can confirm the table looks right before pasting it anywhere.
When to use it
- βTurning an API response into a table for documentation without manually building it in Markdown
- βConverting database query results (exported as JSON) into a table for a report or PR description
- βQuickly visualizing the shape of a JSON array of objects as a table
- βDocumenting a config or options object's fields as a reference table
Tips
- βA single JSON object (not wrapped in an array) also works β it's treated as a one-row table, useful for documenting a single config or settings object.
- βIf your objects have different sets of fields, the table still works β missing fields just render as empty cells rather than causing an error.
- βNested objects and arrays inside a cell get stringified as compact JSON rather than causing an error β flatten your data first if you want more readable output for deeply nested values.
Frequently asked questions
What happens if different objects in the array have different keys?
The column set is the union of every key seen across all objects, in the order each key first appears. Any object missing a given key just gets an empty cell in that column β the conversion doesn't fail or skip rows because of inconsistent shapes.
What if a value contains a pipe character or a newline?
Both are handled automatically: a literal | is escaped to \| so it doesn't get misread as a column separator, and newlines are collapsed to spaces so a single value can't break a row across multiple lines. The generated Markdown stays valid either way.
Does this work with a single JSON object instead of an array?
Yes β a single object (not wrapped in []) is treated as one row, producing a table with your keys as columns and that one object's values as the single data row. This is useful for documenting the shape of a single config object.