JSON tools
JSON Validator
Check whether a JSON document parses cleanly, and get an exact error pointer if it doesn't. Runs in your browser, validates against RFC 8259, free.
Validation
Valid JSON
Parsed successfully. Top level is an object with 2 keys.
Stores the JSON behind a public URL with version history. Free, no sign-up needed.
How it works
Your input is parsed with the browser's built-in JSON.parse. Either it succeeds — in which case you have valid JSON per RFC 8259 — or you get a structured error including the position. We don't pre-process or transform the input, so the result mirrors what your production code would do.
Frequently asked questions
- What standard does it validate against?
- RFC 8259 — the canonical JSON specification. The same rules your JavaScript runtime, Node.js parser, Python json module, and most server libraries enforce.
- Does it check JSON Schema?
- No. This tool checks syntax only — whether the input is parseable JSON. JSON Schema validation (verifying the structure of a JSON document against a schema definition) is a separate problem; we may add that as its own tool.
- What kinds of errors does it catch?
- Trailing commas, single-quoted strings, unquoted object keys, unterminated strings, missing braces, malformed escapes, and any other syntax error your runtime would reject. The error message points at the position in the input.
- Does it accept JSON5 or JSONC?
- No. It accepts strict, standard JSON only — no comments, no trailing commas, no unquoted keys. If your input is JSON5, JSONC (JSON with comments), or NDJSON, this tool will reject it; that's the correct behaviour for spec-compliant validation.
- Is my JSON sent anywhere?
- No. Validation runs entirely in your browser. Your JSON only leaves the page if you click "Save & share" to store it as a public blob.
Related tools
- JSON Formatter — pretty-print after validation.
- JSON Minifier — strip whitespace for transport.
- JSON Diff — compare two values semantically.
Validating something you'll need to come back to? Save it as a versioned blob and the URL stays valid — every edit creates a new version you can diff later.