Text, not inner markup
A cell that contains <strong> or a link contributes only its visible words. Attribute values such as href are not exported as fields.
Paste a fragment or a full page that includes a <table>. If several tables are found, choose one above.
Three newsroom shifts with role, active flag, and hours
Table extraction stays in this browser tab. Pasted markup and uploaded .html files are not posted to our servers. This is a local parse, not a document-hosting service.
Drop in markup, choose a table when the page has more than one, and copy a JSON array built from the header row plus each data row.
Paste a fragment or a saved page that includes at least one <table>. A complete document is fine — the converter ignores script and style and looks only for tables. Need to preview the page first? Open it in the HTML viewer.
<table>
<caption>Newsroom shifts</caption>
<thead>
<tr>
<th>id</th>
<th>name</th>
<th>role</th>
<th>active</th>
<th>hours</th>
</tr>
</thead>
<tbody>
<tr>
<td>T-01</td>
<td>Amelia Chen</td>
<td>Editor</td>
<td>true</td>
<td>32</td>
</tr>
<tr>
<td>T-02</td>
<td>Noah Patel</td>
<td>Reviewer</td>
<td>false</td>
<td>16</td>
</tr>
<tr>
<td>T-03</td>
<td>Sofia Berg</td>
<td>Publisher</td>
<td>true</td>
<td>40</td>
</tr>
</tbody>
</table>When a thead block exists, its first row supplies the property names. Otherwise the opening row is used. Turn off “use headers” if every row should become a numbered record. Optional coercion turns plain digits and the words true/false into JSON numbers and booleans.
[
{
"id": "T-01",
"name": "Amelia Chen",
"role": "Editor",
"active": true,
"hours": 32
},
{
"id": "T-02",
"name": "Noah Patel",
"role": "Reviewer",
"active": false,
"hours": 16
},
{
"id": "T-03",
"name": "Sofia Berg",
"role": "Publisher",
"active": true,
"hours": 40
}
]Copy the JSON or download a .json file. If you actually started with a workbook or a comma file, switch to Excel to JSON or CSV to JSON. The reverse direction — objects to markup — lives on JSON to HTML.
A predictable grid read: headers become keys, following rows become records.
| Ingredient | What the converter does |
|---|---|
| Header source | First thead row, or the first row when no thead exists |
| Each later row | One object in the output array |
| Cell contents | Visible text only — tags stripped, entities decoded |
| script / style | Removed before any table is read |
| Several tables | First table by default; a picker appears when more exist |
A cell that contains <strong> or a link contributes only its visible words. Attribute values such as href are not exported as fields.
With coercion on, a cell that is only digits becomes a number, and the words true, false, and null become those JSON values. Identifiers that start with a zero stay strings so codes like T-01 and 0012 are not altered.
Documented on 2026-11-10 so the output is not mistaken for a full HTML table layout engine.
A merged cell still occupies a single slot in the grid. Neighboring keys may be empty, and a warning is shown when the markup uses colspan or rowspan. Do not expect a reconstructed visual layout.
A table buried in a cell is flattened to text in that cell. It is not added to the Table menu as a separately selectable grid. Extract the inner markup if you need that grid on its own.
If a row has fewer or more cells than the header, the object is still emitted: missing keys are empty (or null with coercion), and leftover cells appear as column_N. A status note explains the mismatch.
This page starts from HTML markup. Other pages start from a workbook, a CSV, or JSON itself.
Excel to JSON reads .xlsx / .xls files and spreadsheet clipboard paste, not HTML tags.
Use CSV to JSON if you already have a delimited text export.
JSON to HTML builds markup from objects. Use the HTML viewer to preview a page, or String to JSON when you have an escaped JSON string rather than a table.
Questions about parsing tables, thead headers, file upload, merged cells and privacy
Edit, format, and beautify JSON
Validate, fix, and inspect JSON
Compare, measure, and map JSON
Convert JSON to other formats
Convert other formats to JSON
Convert, format, fix, and minify XML
Generate code and format other languages