JSON Parser Online: Parse and View JSON as a Table

Copy and Paste JSON in the following areaEnter JSON here

What is a JSON parser?

A JSON parser reads JSON text and turns it into data a program can use: objects, arrays, strings, numbers. Every language has one built in. What none of them give you is a way to look at the result. Paste a 400-order response from an API and you get a wall of braces, and you end up counting brackets to work out which "status" belongs to which order.

This page parses the JSON the same way and then draws it as a table. An array of objects becomes rows, and every key becomes a column. A nested object, like the customer inside an order, becomes a small table inside that order's cell, so you can read three levels deep without expanding anything. If records have different keys, the columns are the union of all of them and the missing values are just empty cells. null shows as an empty cell too.

Two things it does that a plain parse does not. Long integers keep their exact digits: a SIM card ICCID like 8901240544102066246 stays 8901240544102066246 here, where JavaScript's own parser would quietly turn it into 8901240544102066000. And double-encoded JSON, a JSON string that holds more JSON (common in logs and message queues), is unwrapped and shown as the real table. Parsing happens in your browser, and nothing is uploaded unless you click Share.

Parsing JSON in your own code

If you landed here looking for how to parse JSON in a program rather than in a browser tab, here are the two calls most people need, with the trap each one hides.

JavaScript and Node.js

const order = JSON.parse('{"orderId": "ORD-2291", "total": 48.5, "items": 3}');
console.log(order.total);   // 48.5

JSON.parse('{"messageId": 1187634512339927051}').messageId;
// 1187634512339927000   <- a different message ID

JSON.parse() turns every number into a double, which only holds about 15 to 16 significant digits. Anything past 9,007,199,254,740,991 is rounded without an error. If your JSON carries database IDs, snowflake IDs or ICCIDs, ask the API to send them as strings, or parse with a reviver that reads the raw text. Broken JSON throws a SyntaxError. Paste {'name': 'Ada'} into Chrome or Node 22 and you get Expected property name or '}' in JSON at position 1 (line 1 column 2); older versions say Unexpected token ' in JSON at position 1. Both mean the same thing: JSON needs double quotes.

Python

import json

order = json.loads('{"orderId": "ORD-2291", "total": 48.5, "items": 3}')
print(order["total"])   # 48.5

json.loads('{"messageId": 1187634512339927051}')["messageId"]
# 1187634512339927051   <- exact; Python ints have no size limit

Python's json module keeps big integers exact, so the message ID above comes back exactly as sent. The usual surprise is the error text: the same single-quoted input gives json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1). Python dicts printed with print() use single quotes, which is how a lot of not-quite-JSON ends up in log files. Use json.dumps() when you write it out.

For a longer walkthrough, see how to parse JSON in JavaScript and reading and writing JSON in Python. If you have JSON that will not parse at all, the JSON Validator points at the exact line.

How to Use the JSON Parser

Follow these steps to parse, view, and work with your JSON data. Each step uses the actual buttons and features on this page.

1

Paste Your JSON or Load Sample

Paste JSON into the left editor from your API response (from Postman, curl or your browser's dev tools), config file, or database export. Not sure where to start? Click the Sample button in the toolbar to load example subscriber data. The sample shows an array of objects like:

[{"id": 1, "subscriberId": "SUB-1001", "plan": "Unlimited 5G", "dataUsage": 45.2}, {"id": 2, "subscriberId": "SUB-1002", "plan": "Family Plan", "dataUsage": 120.5}]

Invalid JSON will show an error message below the editor. Fix any missing commas or quotes and the table will appear automatically.

2

View as Table

The right panel converts your JSON into a table instantly. Arrays of objects become rows; object keys become columns. For the sample data, you'll see columns id, subscriberId, plan, dataUsage and carrier with one row per subscriber. Nested objects or arrays appear as tables within cells. Use the Main and Nested buttons to transpose rows and columns if your data is wide. Parsing follows the RFC 8259 JSON specification.

3

Filter Rows

Each column has a filter box below the header. Type to narrow results. Example: type 5G in the plan column to show only 5G plans, or Verizon in the carrier column to see just those subscribers. Filters match any part of the cell text, are case-insensitive, and work across multiple columns at once. The status bar shows "Showing X of Y rows" when filters are active.

4

Edit Values Inline

Click the Edit button, then double-click any cell to change its value. Press Enter or click away to save. The JSON in the left editor updates automatically. Use the remove (×) icon on a column header to delete that key from every row, in the table and in the JSON. Great for fixing typos, updating IDs or dropping a field before you share, without touching the raw JSON.

5

Maximize, Export, or Share

Click Maximize to open the table full screen, which helps with wide data. Click Excel to download an .xls file that opens in Excel, Google Sheets or LibreOffice. Click Share to create a link you can send to a teammate, kept for anything from 1 month to 2 years. They open it and see the same table without pasting anything. Share is the one button on this page that uploads your JSON.

When people reach for it

Checking an API response

A GET /orders call in Postman returns 400 orders and one of them is breaking the checkout page. Paste the response, filter the status column for pending, and the order with no shippingAddress stands out as the one row with an empty cell.

Reading a webhook payload

Webhook bodies from payment and messaging providers nest three or four levels deep: an event, holding an object, holding line items. Pasted here, each level is its own small table, so you can see which field your handler should read without writing a script to print it.

Looking through a database export

A collection exported from MongoDB or a JSON column pulled out of PostgreSQL is usually an array of documents with slightly different shapes. The table shows the union of every key, so the field that only some documents have is easy to spot, and Excel gets the result to a spreadsheet in one click.

Showing data to someone who does not read JSON

A product manager wants to know which subscribers are on the old plan. Load the export, filter the plan column, and send a Share link. They see a table they can scroll, not brackets.

Common questions

Do you store my JSON data?

No. The JSON is parsed and drawn in your browser, and it is not uploaded. The one exception is the Share button: it stores the JSON so the link works, for the period you pick (1 month to 2 years). If you never click Share, nothing you paste leaves the page.

What JSON formats work?

Arrays of objects and single objects, which covers most API responses and exports. Nested objects and arrays inside them render as tables within cells, however deep they go. The top level has to be an object or an array of objects, though: a bare value like 42, an empty array, or an array of plain values like ["read","write"] shows a "JSON must contain objects" message instead of a table.

Can I edit the data?

Yes. Click "Edit" and double-click any cell. Change the value, hit Enter, and it updates the JSON automatically. You can also remove columns entirely if you don't need them. It's like editing a spreadsheet, but your JSON stays syntactically correct.

Why did my long ID change after JSON.parse?

Because JavaScript stores every JSON number as a 64-bit double, which is exact only up to 9,007,199,254,740,991. JSON.parse('{"iccid": 8901240544102066246}') gives back 8901240544102066000, with no error or warning. The usual fixes are to send the ID as a string, or to parse with a library that keeps big numbers. This page already does the second, so the table shows the digits you pasted.

What does "Expected property name" or "Unexpected token" mean?

Your JSON has a syntax error, and the position in the message points at it. The common causes, roughly in order: single quotes instead of double quotes, a trailing comma after the last item, a key without quotes, and a comment (JSON has none). The editor here marks the line. If the document is badly broken, the JSON Fixer can repair it.

What can I export to?

Excel. The Excel button downloads the table as an .xls file (an HTML table, so Excel may warn that the format and extension don't match before opening it). It opens in Excel, Google Sheets and LibreOffice, and nested data stays as nested tables. If you need a plain CSV, the JSON to CSV converter does that.

How big can my JSON file be?

No hard limit, but performance depends on your browser. Small files (under 1MB) parse instantly. Files around 5MB might take a second or two. Really huge files (10MB+) can slow things down, but they'll still work. If you're dealing with massive datasets, consider using a tool like jq for command-line processing.

Other JSON Tools You Might Need

This parser is great for viewing data, but sometimes you need other things. Here are our other tools that work well together: