JSON to Markdown Table

code

Convert JSON to a Markdown table for README files, issues, and docs. Supports arrays of objects (most common), single objects, and arrays of values. Output uses GitHub Flavored Markdown (GFM) table syntax.

JSON to Markdown Table
Convert JSON arrays or objects into a Markdown table (GFM)
Characters: 0Words: 0Sentences: 0Lines: 0

Options

200
Characters: 0Words: 0Sentences: 0Lines: 0

JSON to Markdown table converter - free online tool

What is a JSON to Markdown table converter?

A JSON to Markdown table converter turns JSON into a GitHub Flavored Markdown (GFM) table. This is useful when your source data lives in JSON, but your docs, README, or issue tracker reads better as a table.

The converter runs locally in your browser. You can paste JSON that includes internal names or test data without sending it to a third-party API.

How to use the JSON to Markdown table converter

  1. Paste JSON: Paste an array of objects, a single object, or an array of values.
  2. Set table options: Choose max rows, alignment, and whether to sort columns.
  3. Copy the table: Paste the Markdown table into GitHub, GitLab, or your docs tool.

What JSON shapes work best?

JSON can represent many structures, but tables prefer consistent rows and columns.

  • Best: an array of objects, where each object uses the same keys.
  • Also works: a single object; keys become the header row, values become one table row.
  • Fallback: arrays of values or primitives; exported as a one-column table.

How values appear in the table

Markdown tables are text. The converter turns values into strings so the output stays readable:

  • true and false become true and false.
  • null becomes null.
  • Missing keys become empty cells.
  • Objects and arrays become compact JSON strings inside the cell. This keeps rows consistent.

If you need a refresher on what valid JSON looks like, see https://www.json.org/json-en.html.

Use case 1: Document API fields

Turn an API sample payload into a table of field names and values for docs.

Use case 2: Share config options

Convert a JSON object of config keys into a table for a wiki page.

Use case 3: Build a changelog table

If your release notes tool exports JSON, convert it into a Markdown table for a GitHub release description.

Examples

Basic example (array of objects)

Input (JSON):

[
  { "name": "Ada", "role": "Engineer", "active": true },
  { "name": "Jordan", "role": "PM", "active": false }
]

Output (Markdown):

| name | role | active |
| :--- | :--- | :--- |
| Ada | Engineer | true |
| Jordan | PM | false |

Advanced example (nested values)

Nested objects and arrays do not fit cleanly into table cells. The converter turns nested values into JSON strings so the table stays valid.

Input (JSON):

[
  {
    "service": "auth",
    "owners": ["dina", "evan"],
    "limits": { "rpm": 600, "burst": 60 }
  }
]

Output (Markdown):

| service | owners | limits |
| :--- | :--- | :--- |
| auth | ["dina","evan"] | {"rpm":600,"burst":60} |

Common errors

Invalid JSON

If the input is not valid JSON, conversion fails. Fix: format and validate it with the JSON formatter, then convert again.

The table is missing columns

If some objects do not include a key, that cell becomes empty. Fix: make keys consistent across objects, or turn on column sorting so the headers are easier to scan.

The table is too large

Large arrays can produce huge Markdown output. Fix: lower the Max rows option for docs-friendly output, then include a link to the full dataset elsewhere.

Tips and proven approaches

  • Format first, then convert: Use the JSON formatter so you can spot missing braces or quotes before table generation.
  • Sort headers for docs: Sorting columns A-Z keeps tables stable when keys appear in different orders.
  • Round trip when needed: If you need the JSON back later, keep the Markdown table and convert it with Markdown table to JSON. If you need CSV for spreadsheets, convert the table with Markdown table to CSV.

Related tools

Privacy and security

JSON parsing and table creation run locally in your browser. Textavia does not upload or store the JSON you paste.

Frequently Asked Questions
Arrays of objects work best, like [{"name":"Ada","role":"Engineer"}]. Each object becomes a row and keys become column headers.
Nested values are converted to JSON strings inside the cell so the table stays valid.
Yes. JSON parsing and table generation run in your browser.