HTML Table to JSON
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.
How to convert an HTML table to JSON
- Copy the table from the page — or use View source / DevTools and copy the
<table>element — and paste it into the input pane. - If the page had several tables, set Which table to the index you want. The status bar reports how many it found.
- Choose the Output shape. Objects are usually what you want; arrays keep the raw grid when headers are unreliable.
- Leave type inference on to get numbers instead of numeric strings.
- 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
- No network fetching. The tool cannot load a URL for you — browsers block cross-origin requests to arbitrary pages, and adding a proxy would mean your data passing through someone's server. Paste the markup instead.
- Colspan and rowspan are not expanded. Cells are read in document order, so a merged cell shifts the columns after it. Tables built for layout rather than data will come out misaligned.
- Only text is extracted. Links keep their text but lose their
href; images contribute nothing.
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.