Productivity and Utilities

JSON Viewer

Turn a block of JSON into a tree you can open and close, search, and copy paths from, without sending it anywhere.

Paste JSON or open a .json file. It is parsed in this tab and never uploaded. Up to 2,000,000 characters.

Your files stay on your device. They are processed in your browser and are never uploaded to SumPanda.

Next step

How to use the json viewer

  1. Paste JSON into the box, or press Choose a JSON file to open a .json file from your device.
  2. If the JSON is valid you see a summary of how many values it has and a tree. If not, the page explains what is wrong and where.
  3. Click a triangle to open or close an object or array. Expand all opens branches up to a safe limit, and Collapse all closes them.
  4. Click any key name to copy its path, such as $.address.city. Use Search to list keys and values that match with their paths.
  5. Use Copy formatted JSON or Copy minified JSON to take a tidy or compact version away.

Reading the tree

Objects show their key count and arrays show their item count, so you can see the shape of the data before you open anything. Strings are shown in quotes, numbers and the words true, false and null each have their own colors, and every type also differs in how it reads, so nothing depends on color alone. Long strings are shortened on screen to 300 characters, with the true length available on hover.

Paths use the same style you would write in code. The root is $, a key becomes .name, a key with spaces becomes ["first name"], and an array position becomes [2]. For example, in the sample {"name": "Ada", "tags": ["math", "code"]}, the second tag has the path $.tags[1]. Paste paths straight into your own code or a bug report.

Why JSON is rejected

The viewer follows the strict JSON format. The most common problems are a trailing comma after the last item, single quotes instead of double quotes, keys without quotes, comments, and a missing comma or bracket. When parsing fails, the message includes a line and column where your browser noticed the problem. The mistake is often just before that spot.

Two quirks are worth knowing. Numbers are read as JavaScript numbers, so integers larger than 9,007,199,254,740,991 lose precision. And if a key appears twice in the same object, the last value wins. If either matters for your data, check the original text.

Safe and private by design

Everything you see is built from plain text, never from raw HTML, so a string like <script> in your data is displayed as text and cannot run. The data is parsed in your browser and is never uploaded. Input is capped at about 2 million characters, children of a large array or object load 200 at a time with a Show more button, and the summary counts values without recursion, so very deep nesting does not crash the page.

The tool views data. It does not edit it, validate it against a schema, or convert it to other formats.

Assumptions and limits

  • The input must be strictly valid JSON. Comments, trailing commas and single quotes are rejected.
  • Large numbers beyond 9,007,199,254,740,991 are shown with reduced precision. Duplicate keys keep the last value.
  • Size limit: about 2,000,000 characters for pasted text or a file.
  • Expand all opens up to 3,000 branches. Open the rest one at a time.
  • Formatted copy uses two-space indentation, and minified copy removes all optional whitespace.

Formulas reviewed October 10, 2026. See the calculation methodology for how SumPanda rounds, tests and sources its formulas.

Frequently asked questions

Why does the JSON viewer say my JSON is not valid?

The usual causes are a trailing comma, single quotes around text, an unquoted key or a missing bracket. The message gives a line and column, and the real mistake is usually at or just before that point.

Can I open a JSON file from my computer?

Yes, choose a .json file of up to about 2 MB. It is read by your browser and shown as a tree, and it is not uploaded to any server.

How do I get the path to a value in the tree?

Click its key name and the path is copied, in the form $.user.tags[1]. The search results also have a Copy path button for each match.

Is it safe to paste private JSON here?

Your JSON is processed locally in this tab. It is not sent anywhere or saved, and values are inserted as text, so markup inside the data cannot execute. Close the tab and it is gone.

What does the viewer do with very large files?

It refuses text over about 2 million characters, and it only draws 200 children at a time inside any array or object. To compare two lists exported from JSON, you can use the compare two lists tool.