jsontoolskit.org
JSON and JSON Schema utilities, in the browser
Say hi →

HTML Table to JSON

pasted <table> markup → JSON array · updated 28 July 2026

Paste HTML — a whole page or just a <table> — and get a JSON array back. The header row becomes the object keys, cell text is trimmed and collapsed, and numbers and booleans are recognised. Parsing uses your browser's own HTML parser, so it copes with the tag soup real pages contain.

Paste input to start.

How to convert an HTML table to JSON

  1. Copy the table from the page — or use View source / DevTools and copy the <table> element — and paste it into the input pane.
  2. If the page had several tables, set Which table to the index you want. The status bar reports how many it found.
  3. Choose the Output shape. Objects are usually what you want; arrays keep the raw grid when headers are unreliable.
  4. Leave type inference on to get numbers instead of numeric strings.
  5. Copy the JSON, or download it.

How the header row is detected

If the table has a <thead> or any <th> in its first row, that row becomes the keys and is excluded from the data. Otherwise every row is treated as data and columns are named col1, col2, … Switch the output shape to Array of arrays if a table uses <th> for row labels rather than column headers.

Limits worth knowing

Privacy

Nothing is uploaded. The conversion runs in this tab using your own browser's JavaScript engine — no server sees your data, and the page keeps working with the network disconnected.

FAQ

It says no table found, but I can see one.

You have probably copied the rendered text rather than the markup, so there are no tags to parse. Use DevTools → Elements, right-click the table, and choose Copy → Copy outerHTML.

Can it read a table from a URL?

No, and that is deliberate — see the limits above. Paste the markup and nothing leaves your browser.

Why are some columns off by one?

Almost certainly colspan or rowspan. Switch to Array of arrays to see the raw grid and confirm.