Converter Tools
JSON to HTML Table Converter
Convert a JSON array of objects, arrays, or values into a clean HTML table in your browser. Plain, inline-styled, or class-based output with a live preview.
Nested values
Expand nested objects and arrays into columns like address.city
Style mode
Inline styles survive email clients and CMS sanitizers that strip <style> blocks.
Column alignment
Numeric columns are right-aligned. Everything else is left-aligned.
Conversions run entirely in your browser. Your JSON is not uploaded.
Live preview
How the HTML renders in a browser. Colors approximate the emitted styles inside this dark theme.
| id | name | role | active | score |
|---|---|---|---|---|
| 1 | Ada Lovelace | Engineer | true | 98.5 |
| 2 | Grace Hopper | Admiral | true | 99.2 |
| 3 | Alan Turing | Mathematician | false | 100 |
How to use
- Paste a JSON array of objects, an array of arrays, an object envelope like { data: [...] }, or a single object into the input. The tool reports the detected shape in the meta strip so you can verify the assumption.
- Pick Flatten with dotted keys to expand nested objects and arrays into columns like address.city or tags.0, or Keep as JSON to render nested values as compact JSON strings inside one cell.
- Pick a style mode: Plain HTML for pages with their own table CSS, Inline styles for HTML emails and CMS rich-text fields, or CSS classes for a scoped stylesheet you can tweak later.
- Leave Column alignment on Auto to right-align numeric columns and left-align the rest, or force all columns to Left, Center, or Right. Toggle Border, Striped rows, Compact padding, Cell line breaks, or Indent output to taste, and optionally add a caption.
- Click Copy HTML to copy the markup, or read the live preview below to verify the table before you paste.
About this tool
JSON to HTML Table Converter turns a JSON array of objects, an array of arrays, an object envelope wrapping a data array, or a single object into a semantic HTML table that drops cleanly into a documentation page, a blog post, a static site, an HTML email, a CMS rich-text field, a Notion or Confluence page, or any other place that accepts HTML. The parser uses the native JSON.parse and surfaces the exact error message when the input is invalid, so you can spot a missing comma, an unquoted key, or a stray trailing character immediately. The shape resolver matches the rules used by the JSON to CSV and JSON to Markdown Table tools on this site so the three converters agree on output. Arrays of objects map to one row per object, arrays of arrays map each inner array to a row with synthetic Column 1, Column 2 headers (or with the first row promoted to the <thead> when you ask), arrays of primitives become a single value column, an object envelope like { data: [...] } drills into the first array property, and a bare primitive becomes a one-cell, one-row table. Nested objects and arrays can either be flattened into dotted column names (address.city, tags.0) for a spreadsheet-style table or kept as compact JSON strings inside one cell. Column order is the first-seen order across all rows so partial records still contribute their unique columns. Per-column alignment is auto by default: columns whose every non-empty cell parses as a finite number are right-aligned, everything else is left-aligned, and you can force all-left, all-center, or all-right when you want. Three styling modes cover the common copy-paste targets. Plain HTML emits a clean <table> with no inline styles or classes for pages that already have their own table CSS. Inline styles puts a style attribute on every element so the table survives email clients and CMS sanitizers that strip <style> blocks, which is the format Mailchimp, HubSpot, and most marketing platforms expect. CSS classes emits semantic class names like zst-table, zst-table-bordered, and zst-table-striped along with a scoped <style> block so the copied snippet renders correctly without any external CSS. Optional caption, border, striped rows, compact padding, and indented output are independent toggles, and cell content is HTML-entity-escaped so values containing ampersands or angle brackets render as literal text instead of becoming markup. A live preview below shows exactly how the chosen markup will render in a browser, and the meta strip reports the detected JSON shape, row and column counts, character length, and byte size so you can verify the output at a glance. Useful for turning API responses into a documentation table, prepping HTML email tables for newsletters and transactional templates, embedding tabular data in a static site, building changelog or feature-comparison tables, or converting any JSON dataset you can paste into a copy-paste-ready HTML snippet. Everything runs locally on your device, so the JSON you paste here, including any internal data, never leaves your browser.
Free to use. Works in your browser. No signup, no login.
Related tools
You may also like
CSV to HTML Table Converter
Paste CSV and get a semantic HTML table with plain, inline-styled, or class-based output.
Open tool
ConverterJSON to Markdown Table Converter
Turn JSON arrays and envelopes into a clean GFM markdown table.
Open tool
ConverterJSON to CSV Converter
Convert JSON arrays to CSV with nested flattening and Excel-friendly options.
Open tool
GeneratorHTML Table Generator
Editable grid, plain or styled output, alignment, caption, borders, stripes, and live preview.
Open tool
ConverterHTML Table to CSV Converter
Extract HTML tables to RFC-4180 CSV with colspan, rowspan, and link handling.
Open tool
DeveloperJSON Formatter
Format, minify, and validate JSON in your browser.
Open tool