JSON to HTML Table

Turn a JSON array into an escaped HTML table with a live preview.

About this tool

Paste a JSON array of objects (or a single object, or an API response that wraps a list) and get an HTML table with a live preview. Options flatten nested objects into dot-path columns, right-align numbers, indent the HTML, add a class and caption, and include basic CSS. Copy the HTML into your page, email or CMS.

How JSON becomes a table

Each object in the array becomes a row, and every key found in any row becomes a column, in the order first seen, so rows with missing keys simply get blank cells. Nested objects such as {"address": {"city": "London"}} are flattened into dot-path columns (address.city). Lists of simple values are joined with commas, and anything more complex is shown as JSON text. If you paste an API response like {"data": [...]}, the first array of objects inside it is used. Every value is HTML-escaped, so text such as <b> shows literally and can't inject markup, and header cells use <th scope="col"> so screen readers announce columns properly. Honest limits: very large arrays may be slow to preview, deeply nested data is often clearer split into several tables, and the basic CSS is a plain starting point to restyle. The HTML table generator builds tables from CSV, and JSON to CSV and the JSON formatter are related, with What JSON is, and where it trips people up explaining the format.

Frequently asked questions

How do I convert JSON to an HTML table?

Paste a JSON array of objects here and copy the generated HTML.

How are nested objects handled?

They're flattened into dot-path columns such as address.city, or shown as JSON text if you turn flattening off.

Is the output safe to embed?

Yes. Every value is HTML-escaped, so data can't inject markup.

Is my JSON uploaded?

No. Everything runs in your browser and nothing is stored or sent.