Skip to content

JSON Validator

Validate, format and fix JSON, with errors in plain words, a searchable tree and JSONPath queries. Everything runs in your browser.

v2026.10.06

Valid JSON

  • 16 keys
  • 4 array items
  • 3 levels
  • 318 B 242 B minified
Your JSON
{8 keys
id:1024
name:"Ada Lovelace"
email:"ada@example.com"
active:true
roles:[2 items
0:"admin"
1:"editor"
address:{2 keys
city:"London"
postcode:"W1"
orders:[2 items
manager:null
Select a row to copy its path ($.a.b[0]) or value.
Valid318 B · 16 lines

Runs in your browser: nothing you paste is uploaded. Your inputs are kept in a history in this browser only (never backed up or synced); pause or clear it from the status bar.

How this works: Method, 1 source,

How this works

Method

A hand-written scanner accepts exactly what JSON.parse accepts (RFC 8259) and names the first error with its line and column; it also flags integers past 2^53 and duplicate keys, which JSON.parse would silently change. Fix it repairs common breakages (trailing or missing commas, comments, single quotes, unquoted keys, NaN, Python True/False/None) and never guesses a missing bracket.

Sources

  • RFC 8259, The JavaScript Object Notation (JSON) Data Interchange Format (IETF)

Privacy

On your device. Nothing you enter or open leaves this browser. About privacy labels

Changes

  • The history now keeps your last 200 inputs (up to 100 MB) in this browser, up from 50.
  • Rebuilt: errors in plain words with line and column, a one-click fix with a preview, a searchable tree with JSONPath queries, a private local history, and 10–50 MB files.
  • Format and minify now keep big integers and duplicate keys exactly as written, with a warning when they appear.
  • Added a tree view of the parsed JSON.
  • First published.

Every change on What’s new

How we make toolsReport a mistake

Frequently Asked Questions

What is JSON and why do I need to validate it?

JSON (JavaScript Object Notation) is a lightweight text format for storing and exchanging data. Validation checks the syntax (quotes, commas, brackets) before you send it to an app or API, so a typo shows up here with its line and column rather than as a failed request.

What does Fix it repair?

The usual ways JSON breaks: trailing commas, missing commas between items, comments, single or curly quotes, unquoted keys, NaN, Infinity and undefined, Python's True, False and None, and JSON that was stored as an escaped string. It shows what it will change before you apply it, and Ctrl+Z undoes it. A missing bracket isn't guessed: the check points at it instead.

Can I format or minify JSON without losing big numbers?

Yes. Format (2 spaces, 4 spaces or tabs), Minify and Sort keys work on your text directly instead of re-parsing it in JavaScript, so integers longer than 15–16 digits keep every digit and duplicate keys stay as written. The tool warns you when it sees either.

How do I find a value or copy its path?

Click a row in the tree to see its path, like $.orders[1].total, and copy the path or the exact value. The search box finds keys and values, and it also takes JSONPath queries such as $..email or $.orders[?(@.total > 20)].id; matches are highlighted in the tree and in the editor.

Is my JSON data private? What does the history keep?

Everything runs in your browser: nothing you paste is sent anywhere. The history keeps your last 200 inputs (up to 100 MB in all) in this browser only, so you can go back to them; it is never backed up or synced. Entries that look like they hold a password, token or API key get a "may contain a secret" badge. You can pause the history, delete entries, or clear it all.

What's the largest file I can validate?

Files of 10–50 MB work: the check, formatting and fixes run in a background worker so typing stays smooth, and the tree only draws the rows on screen. Very large files open in up to a few seconds, depending on your device.