JSON to HTML Table

Paste JSON rows or an object and turn them into copy-ready HTML or Markdown tables.

Try:
Table

About this tool

JSON to HTML Table turns a pasted JSON array or object into a clean table you can drop into docs, CMS fields, tickets, or Markdown notes. It accepts the shapes you usually get from APIs: arrays of objects, arrays of arrays, arrays of scalar values, or a single object.

Worked example

Input JSON:

[{"id":1,"name":"Ada"},{"id":2,"name":"Linus"}]

HTML output:

<table>
  <thead>
    <tr><th>id</th><th>name</th></tr>
  </thead>
  <tbody>
    <tr><td>1</td><td>Ada</td></tr>
    <tr><td>2</td><td>Linus</td></tr>
  </tbody>
</table>

Privacy

Everything runs locally in your browser via WebAssembly; pasted JSON is never uploaded. The same formatter is available from the gizza CLI and in chat.

Limits and edge cases

Top-level JSON must be an array or object. Empty arrays/objects and scalar-only JSON documents are rejected because there is no table shape to infer. Markdown cannot contain nested Markdown tables, so the Nested HTML tables option falls back to compact JSON when Markdown output is selected.

FAQ

What JSON shapes can I paste?

Paste an array of objects, an array of arrays, an array of scalar values, or a single object. Arrays of objects become row tables, arrays of arrays use either the first row as the header or generated Column N headers, scalar arrays become a single-column table, and a single object becomes a two-column key/value table.

How are different object keys handled?

For an array of objects, columns are the union of every key in first-seen order. If one row is missing a key that another row has, the missing cell renders as the null / missing text you provide (empty by default).

What should I choose for nested objects or arrays?

Use Compact JSON in cells for a safe default that works in both HTML and Markdown. Use Nested HTML tables when you want nested <table> elements in HTML output. Use Flatten object keys when nested objects should become columns such as user.id and user.name; arrays still stay as compact JSON strings.

Can I style the generated HTML table?

Yes. Add a class list such as table table-striped in the HTML table class field, and optionally add a caption. The tool only writes the table markup; your site or document provides the CSS that styles those classes.

Developer & Automation Access

Run it from the terminal

Same engine as this page, headless — via the gizza CLI:

gizza tool json-to-html-table '[{"id":1,"name":"Ada"},{"id":2,"name":"Linus"}]'

New to the CLI? Get gizza →

Open it by URL

Pre-fill and auto-run this tool with query parameters — the names match the API/CLI:

https://gizza.ai/tools/json-to-html-table/?json=%5B%7B%22id%22%3A1%2C%22name%22%3A%22Ada%22%7D%2C%7B%22id%22%3A2%2C%22name%22%3A%22Linus%22%7D%5D&format=html&nested=json&header=true&null_text=e.g.%20%E2%80%94&caption=Quarterly%20users&table_class=table%20table-striped&pretty=true

Machine-readable descriptor: tool.json — title + parameters JSON Schema for agents.