JSON to HTML

Paste JSON and get an HTML table. Nested objects become nested tables. It runs in your browser, so your data never leaves your device.

Pasted text or .json and .txt files, up to 50 MB

Paste or choose a file. You can also drop a file here.

Layout
Output

Your preview will appear here after conversion.

How it works

This JSON to HTML converter turns a pasted response or local file into semantic HTML. Choose Table for data you want to scan across rows, or List for a document with many levels. Conversion happens in a Web Worker in your browser. The JSON text is not sent to our server, and you do not need an account.

What each JSON shape becomes

Your JSONYou get
An array of objectsOne table with a header row. Columns include every key seen across the objects, in first-seen order. Missing values leave empty cells.
One objectA two-column table with keys in row headers and their values beside them.
A nested object or arrayA nested table for objects or arrays of objects. An array of simple values becomes a list inside its cell.
A simple value or array of simple valuesA single-cell table, or a one-column table for an array. Null and empty values leave empty cells.

Use Table for records such as orders, contacts and API responses. Use List when the hierarchy matters more than columns: objects become definition lists, and arrays become unordered lists. You can switch layouts after converting without pasting again. In either layout, the result uses text content only. Characters that could form HTML markup are escaped, so a value such as an image tag appears as text.

Table only gives you an HTML fragment to paste into a CMS, email template or existing page. Full HTML page adds a document wrapper, a title, a viewport setting and a small table style. Download that version if you want to open the result as a standalone file. Preview shows the HTML in a sandboxed frame; HTML code shows what will be copied or downloaded.

You can paste text or choose a .json or .txt file up to 50 MB. The preview shows at most 500 top-level rows to keep the page responsive; copying and downloading use the complete result. For very large output, the code panel shows only the start, but Copy HTML and Download HTML file still use everything. Numbers keep their JSON spelling. When a browser cannot preserve a large integer through JSON.parse, the converter keeps its original digits and shows a warning.

If the JSON cannot be parsed, the message points to a line and column and suggests a fix. Common causes are trailing commas, single quotes, unquoted keys and comments. JSON Lines files contain one value per line rather than a single JSON array; use Wrap lines into an array to convert them, then run the conversion again.