JSON Viewer
Paste or type JSON to check its syntax, format it with consistent indentation, or explore objects and arrays in an expandable tree. This is useful when an API response, configuration file, or saved payload is difficult to read in its compact form.
What this JSON viewer checks
JSON is a text format with a strict grammar. A document can look similar to a JavaScript object and still be invalid JSON because property names use single quotes, a comma trails the final item, or a value such as undefined is present. This viewer reports the parsing error produced by your browser so you can locate syntax problems before using the data elsewhere.
After a successful parse, the same value can be viewed as indented text or as a navigable tree. The tree labels strings, numbers, booleans, and null values separately and lets you expand or collapse nested objects and arrays. Multiple tabs are available for working with more than one payload during the current session.
How to use the JSON viewer
- Add the JSON: Paste or type the payload in the JSON Input tab, or load one of the built-in sample documents.
- Check the parser result: Valid input enables the JSON Viewer tab. Invalid input remains in the editor and displays the browser parser error.
- Choose a view: Use Interactive Tree to explore nested values, or Formatted Text to see and copy the indented document.
- Clear sensitive data: Use Clear when finished, particularly on a shared device, because the current input is saved in this browser for session recovery.
Supported input and output
Input
- JSON text containing an object, array, string, number, boolean, or null value
- A sample payload generated by the page
- JSON embedded in a Yes FreeTool share-link fragment
Output
- An expandable tree representation of valid JSON
- A two-space-indented text representation that can be copied
- A browser-generated parsing error when the input is invalid
How JSON parsing and formatting work
Syntax parsing
The page passes the text to the browser’s native JSON parser. If parsing succeeds, the result has the JSON value types represented by JavaScript; if it fails, the parser supplies an error message.
Formatting
The parsed value is serialized again with two-space indentation. Formatting changes whitespace, not the represented keys and values.
Tree rendering
Objects and arrays are traversed in the browser to create expandable nodes. Primitive values receive distinct visual markers, while nested branches can be opened or collapsed.
Share links
The Share action gzip-compresses the input and places an encoded copy in the URL fragment with a five-minute expiry timestamp. The sharing code does not call a Yes FreeTool storage API, but anyone or any software with access to the complete URL can read its contents.
Inspecting a compact API response
- Scenario
- An API returns a compact user record that is difficult to scan.
- Action
- Paste the payload, open JSON Viewer, and expand the roles array.
- Input
- {"id":42,"active":true,"roles":["editor","reviewer"]}
- Expected result
- The formatter displays an indented copy and the tree identifies id as a number, active as a boolean, and roles as a two-item array. It does not determine whether those fields satisfy the API’s schema.
Important JSON viewer limitations
- Syntax validation does not check a JSON Schema, API contract, required fields, or business rules.
- Comments, trailing commas, single-quoted strings, undefined, functions, NaN, and Infinity are not valid JSON.
- Large or deeply nested payloads can make parsing and tree rendering slow or exhaust memory in the current tab.
- Formatting can normalize whitespace, but it does not sort keys, repair invalid input, decode nested JSON strings, or compare documents.
- The page accepts text rather than uploaded JSON files, and it copies formatted output rather than downloading a new file.
- Share links are encoded and compressed, not encrypted. Do not use them for passwords, access tokens, private keys, or personal data.
- Share-link creation requires browser support for gzip CompressionStream and clipboard access; the parser and formatter do not depend on those sharing features.
- The five-minute share expiry is enforced by the page; it cannot revoke a link or erase copies that another person has already saved.
Frequently Asked Questions
Why is my JavaScript object rejected?
JSON is stricter than JavaScript object syntax. Property names and string values require double quotes, and JSON does not allow comments, trailing commas, undefined, functions, NaN, or Infinity.
Does valid JSON mean the payload is correct for my API?
No. A successful parse confirms JSON syntax only. The API may impose a schema with required keys, particular value types, permitted ranges, or other rules.
Where is my JSON saved?
The page stores the current input in localStorage in your browser so it can survive a refresh. It remains there until you use Clear, replace it, or remove the site’s stored data through browser settings.
Is a shared JSON link private?
No. The JSON is compressed and encoded into the URL fragment, not encrypted. The sharing code does not upload it to a Yes FreeTool storage API, but anyone or any software with access to the complete URL can decode it. Do not use sharing for confidential data.
Related tools
JSON Compare
Compare two parsed JSON documents and inspect added, removed, or changed paths.
Base64 & AES-256 Cryptography
Encode text as Base64 or decode Base64 text before inspecting embedded data.
JWT Decoder & Encoder
Inspect the JSON header and payload contained in a JSON Web Token.
URL Encode/Decode
Encode or decode JSON fragments that need to be placed in a URL component.