JSON Array → Markdown Table Converter

Convert a JSON array to a formatted markdown table instantly.

Paste a JSON array of objects and get a clean markdown table with auto-detected columns, left/center/right alignment, optional column selection, and safe escaping of pipes and newlines. Runs entirely in your browser. It runs free in your browser on Gera Tools, with nothing uploaded.

Last updated Source: Gera Tools

What happens to missing keys?

Columns are the union of all keys across every object, so if some objects lack a key, those cells are rendered empty. This keeps the table rectangular even when records have different shapes.

Turn JSON records into a clean markdown table

Pasting structured data into a README, GitHub issue, or chat message means hand-building a markdown table, which is tedious and error-prone. This converter takes a JSON array of objects and produces a properly formatted table in one step, detecting columns automatically and escaping anything that would break the layout.

How it works

The tool parses your input as a JSON array and walks every object to build the union of all keys — that becomes the column set, so records with different shapes still produce a rectangular table. Each cell value is stringified (numbers and booleans directly, nested objects as compact JSON), and pipes are escaped while newlines are collapsed to spaces so the markdown stays valid. You can choose left, center, or right alignment, which sets the separator row, and untick any columns you want to omit.

A complete worked example

Input:

[
  { "name": "Alice", "role": "Admin",  "active": true  },
  { "name": "Bob",   "role": "Editor", "active": false },
  { "name": "Carol", "role": "Viewer", "active": true  }
]

Output (left-aligned):

| name  | role   | active |
| ----- | ------ | ------ |
| Alice | Admin  | true   |
| Bob   | Editor | false  |
| Carol | Viewer | true   |

Which renders as:

nameroleactive
AliceAdmintrue
BobEditorfalse
CarolViewertrue

Alignment options explained

The separator row (the dashes between the header and data) controls alignment in Markdown:

Separator styleAlignmentUse for
--- Left (default)Text, names, categories
:---:CenterStatus flags, short labels
---:RightNumbers, prices, counts

Right-aligning numeric columns makes figures line up at the decimal point, which is much easier to scan than left-aligned numbers.

Tips and notes

For the cleanest output, flatten nested objects before pasting — deeply nested values still render but as inline JSON, which is harder to read. Everything runs locally in your browser with no network calls, so it is safe for sensitive data. Use the column selector to trim wide datasets down to just the fields you want to show, and switch alignment to right for numeric columns so figures line up neatly.

If a value contains a pipe character |, the converter escapes it as \| so it does not break the table structure. Newlines inside cell values are collapsed to spaces for the same reason.