UltKit

HTML to JSON Converter

Pull the table out of a saved web page and get it back as JSON your code can loop over. Header cells name the keys, and every row of the table becomes one object in an array.

Data Converter

or drop CSV, TSV, TXT … files here ·

Max 95 MB per file· Up to 20 files· Deleted after 30 minutes

Output

Files are processed on our servers and deleted after 30 minutes.

How to use this tool

  1. 1

    Save the page or the table

    In your browser press Ctrl+S (Cmd+S on a Mac) and keep the HTML file, or copy the table's markup from the developer tools into an .html file. Upload up to 20 files, 95 MB each.

  2. 2

    Choose the JSON shape

    Array of objects is set for you. Under Advanced settings switch JSON structure to Array of arrays for a more compact file, or turn off Pretty print to get a single line.

  3. 3

    Convert and use the data

    Press Convert to JSON, download the file and load it with JSON.parse in JavaScript, json.load in Python or any API client.

Save the page, upload the .html file and each table row comes back as a JSON object keyed by the table's header cells.

When a web table has to become JSON

Plenty of useful data only exists as an HTML table: an exchange-rate page, a sports league standing, a report your intranet renders but never lets you download, a status page listing every server. The browser shows it nicely, but a front-end developer building a chart, or a tester who needs fixture data, wants an array of objects instead.

The usual answer is a scraper: fetch the page, parse it with Beautiful Soup or Cheerio, walk the rows, map the cells. That is worth writing when the page changes daily. For a table you need once, uploading the saved page is quicker and leaves nothing to maintain.

HTML table to JSON example

Input table with th headers City and Founded, output with Array of objects
<table>
  <tr><th>City</th><th>Founded</th></tr>
  <tr><td>Porto</td><td>1123</td></tr>
  <tr><td>Graz</td><td>1128</td></tr>
</table>

[
  { "City": "Porto", "Founded": 1123 },
  { "City": "Graz", "Founded": 1128 }
]

What the conversion keeps and drops

  • Kept: cell text, the header row as keys and the row order
  • Dropped: CSS, inline styles, classes and the page around the table
  • Dropped: images and icons inside cells, which have no text value
  • Link cells keep their visible text, not the URL behind it
  • Spaces at the start and end of cells are trimmed by Trim spaces
  • The output is UTF-8, which RFC 8259 requires for JSON shared between systems

HTML to JSON converter limits

saved pages accepted
.html .htm
pages per batch
20
per uploaded file
95 MB
then files are deleted
30 min

HTML and JSON side by side

HTML

HyperText Markup Language

HTML is the markup language of the web, first described by Tim Berners-Lee in the early 1990s and now maintained by WHATWG as a living standard. An HTML file describes headings, paragraphs, links, tables, images and forms, while styling usually comes from CSS. Every browser renders it, and it is also used for email templates and saved web pages. A single HTML file often depends on external images and stylesheets, so it may look broken when moved on its own.

Compression
–
Transparency
–
Animation
–
Introduced
1993 · Tim Berners-Lee; maintained by WHATWG
HTML converter

JSON

JavaScript Object Notation

JSON is a lightweight text format for structured data, popularised by Douglas Crockford in the early 2000s and standardised as RFC 8259 and ECMA-404. It represents objects, arrays, strings, numbers, booleans and null with simple, readable syntax. It is the default format for web APIs, configuration files and data exchange between apps in almost every programming language. It has no comments, dates or schemas built in, and large nested files are hard to read without a viewer.

Compression
–
Transparency
–
Animation
–
Introduced
2001 · Douglas Crockford
JSON converter

HTML goes to JSON when a table that was published for human readers, on a report page, an intranet or a public statistics site, has to feed a script, a chart library or an API test.

The two formats come from different traditions. HTML, first described by Tim Berners-Lee in 1991 and now maintained by WHATWG as a living standard, marks up documents for display. JSON, specified by Douglas Crockford and standardized as RFC 8259 and ECMA-404, holds nothing but data. Moving from the first to the second is mostly about throwing presentation away, which is why the result is usually far smaller than the saved page. For tables that came as XML feeds rather than web pages, XML to JSON does the matching job.

HTML to JSON questions

Does the converter read the whole web page or only tables?

Only table markup: the rows and cells inside table, tr, th and td elements. Navigation menus, paragraphs and card layouts built from div elements are not tabular data, so they are not turned into JSON.

Which row supplies the JSON keys?

The header row, normally the th cells at the top of the table. With First row is header on, its text becomes the key for each value underneath, so a column headed Population gives "Population": "…" in every object.

How are colspan and rowspan cells handled?

A merged cell covers several grid positions but holds one value. Expect that value in the first position only, so check spanned columns after converting and fill gaps in code if your table relies on merged headers.

Why are numbers in my JSON written with commas or footnote marks?

Web tables are written for readers, so a cell may say 1,204,000 or 8.3[2]. A plain number such as 1123 becomes a JSON number, but those cells are not valid numbers and stay strings; strip separators and footnote marks in code before doing arithmetic.

Is scraping a table from a website allowed?

That depends on the site's terms and the data, not on the file format. Public statistics and your own exported reports are the usual cases; check the terms before reusing someone else's content.

Can I get a spreadsheet instead of JSON?

Yes. HTML to CSV writes the same table as comma-separated rows that open in Excel, Google Sheets or Numbers.