Open a JSON file

How to open a JSON file and read it as a table

rows.page opens JSON files up to 1.5 GB as a table, free with no signup, and flattens nested objects up to 8 levels deep. The file is read in your browser and is not uploaded unless you press Share. You can also open a JSON file in any text editor or in Firefox's built-in viewer.

.json.jsonl
Drop a file here
Stays in your browserUp to 1.5 GB

No file handy? Open Every country, as nested JSON (250 rows, 1.4 MB).

Which app opens a JSON file?

Every app below opens a .json file. The difference is whether you read raw text, a collapsible tree or a table of records.

Ways to open a JSON file
ToolWhat you seeCostBest for
Notepad or TextEditUnformatted plain textFreeA quick look at a tiny file when nothing else is installed
VS CodeFormatted text with syntax highlighting and schema validationFree (MIT-licensed source)Editing JSON and checking it against a JSON schema
FirefoxCollapsible tree with a filter box, plus raw JSON you can pretty-printFreeBrowsing a nested document without installing anything
ChromePlain text; a tree with the JSON Formatter extension (BSD-3-Clause)FreeQuick checks of API responses once the extension is added
jqPretty-printed text in the terminal (jq . file.json)Free (MIT)Command-line inspection and shell pipelines
rows.pageTable with flattened columns, per-column stats, a row drawer and SQLFree, no signupReading a list of records as a table, filtering and exporting

How to open a JSON file as a table in your browser

  1. Go to rows.page and drop your .json, .jsonl, .ndjson or .ldjson file on the page, or choose it from your disk.
  2. To open JSON from your clipboard instead, click "Paste data" and paste the text.
  3. Scroll the grid (rows load in pages of 100, with no row limit), filter columns, or click a row to see its original JSON in a side drawer.

DuckDB-WASM reads the file inside your browser tab, so it stays on your machine unless you press Share. A .json file over 1.5 GB is refused with "Too big for this browser", while a bigger JSONL file loads only its first rows. You also cannot edit cells, join two files or see the whole file as one collapsible tree.

How to open a JSON file in Notepad, TextEdit or VS Code

JSON is plain text, so Notepad and TextEdit open any .json file. If the file was saved on a single line to save space, you get one long wall of text that is hard to read.

VS Code is free (MIT-licensed source) and does better: run Format Document to add indentation and line breaks, and it validates the file against JSON schemas. It still has no table view, so comparing values across hundreds of records means scrolling through braces and repeated keys.

How to open a JSON file in Firefox or Chrome

Firefox has a built-in JSON viewer that opens when you load a .json file from disk or a JSON URL. It shows a collapsible tree with a filter box, and a Raw Data view with a Pretty Print button.

Chrome has no built-in JSON viewer. For a collapsible tree, install an extension such as JSON Formatter (open source, BSD-3-Clause). Tree viewers work well for config files, but with a list of records you still open one object at a time.

How to pretty-print a JSON file in the terminal with jq

jq 1.8.2 (MIT) indents and colors a single-line JSON file in your shell. Pass the . filter and the file name:

bash
jq . file.json

To go from the terminal to a browser table, push the file to rows.page with curl. Without an account the upload can be up to 100 MB, and the link it prints expires after 7 days.

bash
curl -T data.json https://rows.page

How nested JSON becomes a table on rows.page

  • A single top-level wrapper such as {"data": [...]} is unwrapped to its biggest list (up to 4 levels deep), with the note: Showing the N items in "data"; the other top-level fields were skipped.
  • Nested objects flatten into dot-path columns such as user.address.city, up to 8 levels deep and 200 child fields per object.
  • Arrays stay as list columns, and the grid shows the first 6 items followed by +N.
  • A column that holds JSON as text is expanded when 90% or more of its values in the first 1,000 rows are JSON objects.
  • Any row opens in a side drawer with a JSON/Fields toggle and a "Copy as JSON" button.

Filter the table with expressions like country:NL, price:>20, name:* (has a value) or -name:* (is empty), or click a histogram bar in the Columns panel. That panel shows each column's type, distinct count, share of empty values, min and max for numbers and dates, and top 10 values.

For more, type a DuckDB SQL statement that starts with SELECT, WITH or FROM into the same box; the table is called data. Put double quotes around column names that contain dots, and use FROM (SUMMARIZE data) for averages and quartiles. Results show up to 1,000,000 rows.

sql
SELECT "user.address.city", count(*), avg(price)
FROM data
WHERE price > 20
GROUP BY 1

How to export or share a JSON file as a table

The Export menu saves the current view, including your filter, sort, hidden columns or SQL result:

  • CSV: comma-delimited, UTF-8 without a BOM, with a header row.
  • Parquet: compressed with zstd.
  • JSON: one array of objects; flattened fields use dot-path keys and lists stay real arrays.
  • JSONL: one object per line.
  • Markdown: a table of the first 1,000 rows.

Filtered views export every matching row, while SQL results stop at 1,000,000 rows. Share ("Upload and get a link") uploads the file and gives you a https://rows.page/<10-character id> link that expires after 7 days without an account. Sign in with Google and choose "Keep on my account" to keep it: Free ($0) holds 10 datasets, Pro ($12 per month) 100 and Max ($39 per month) 1,000.

rows.page limits and prices

WhatLimit or price
Open a file in your browserFiles up to 1.5 GB, $0, no account, nothing uploaded
Share a link without an account$0, files up to 100 MB, link deleted 7 days after creation
Free account$0, 10 datasets kept, last 3 versions
Pro$12/month, 100 datasets, files up to 500 MB, private links
Max$39/month, 1,000 datasets, files up to 2 GB, private links

Questions

What is the largest JSON file I can open in rows.page?

You can open JSON and JSONL files up to 1.5 GB in a browser tab. A bigger .json file is refused with "Too big for this browser", and a bigger JSONL file loads only its first rows. One push takes up to 100 MB on any plan, and Pro ($12 per month) and Max ($39 per month) accept files up to 500 MB and 2 GB through multipart uploads.

Is my JSON file uploaded to a server when I open it on rows.page?

No. Dropping or choosing a file reads it inside your browser with DuckDB-WASM, and it is only uploaded when you press Share or push it from the terminal with curl.

How do I open a JSON file from a public URL without downloading it first?

Put the URL after https://rows.page/, like https://rows.page/https://example.com/data.json. Your browser fetches the file directly, or through the rows.page proxy (up to 100 MB, 30 seconds and 5 redirects) if the host blocks cross-origin requests, and nothing is stored.

Can I paste JSON instead of opening a file?

Yes. Click "Paste data" on rows.page and paste JSON or JSONL text from your clipboard, and it opens as a table like a dropped file. CSV and TSV text works the same way.

Can I edit a JSON file or join two JSON files in rows.page?

No. rows.page is read-only and cannot edit cells or join two files. To edit the text of a JSON file, open it in VS Code and use Format Document.