Your country

Tools that support it use your country for local currency, number formats, units and paper size. Your choice is saved only in this browser.

Type a name or a two-letter code. Use the up and down arrow keys to move through the countries, Enter to choose one and Escape to close.

JSON Validator

Strict JSON validation with exact error locations and every path listed.

Developer No upload Works offline Free, no sign-up

Checked as you type. You can also drop a .json file here. Ctrl/⌘ + Enter validates now.

Next steps

About the JSON Validator

Paste JSON and find out immediately whether it is valid. If it is not, you get the exact line and column, the offending line with a marker under the problem, and a plain-language explanation such as "Missing ',' between properties" — plus a button that jumps the cursor straight to the error.

Valid JSON gets a full report: how many objects, arrays, keys and values it has, how deep it is nested, its size, and a list of every JSON path with its type (for example $.books[0].title — string). You can filter the list, switch to JSON Pointer notation and copy or download the paths. The validator also warns about problems that other parsers silently "fix": duplicate keys, integers too large for JavaScript, and numbers that will be rounded.

How to use it

  1. Paste JSON into the box, open a .json file, or press Load sample. Validation runs as you type.
  2. If there is an error, read the message and press Jump to error to put the cursor on it.
  3. For valid JSON, check the warnings and the statistics, then browse the JSON paths table.
  4. Filter paths by text or type, choose JSONPath or JSON Pointer, then Copy paths or Download CSV.

Examples

Missing comma
Input
{
  "name": "Asha"
  "role": "admin"
}
Result
Line 3, column 3: Missing ',' between properties
Paths of a small document
Input
{"books":[{"title":"Cosmos","price":549}]}
Result
$.books — array
$.books[0] — object
$.books[0].title — string
$.books[0].price — number

In JSON Pointer notation the same paths are /books, /books/0, /books/0/title and /books/0/price.

An ID that JavaScript would change
Input
{"orderId": 12345678901234567890}
Result
Warning: $.orderId — 12345678901234567890 is above 2^53 − 1, so JavaScript cannot store it exactly: JSON.parse gives 12345678901234567000.

The JSON is valid, but JSON.parse in browsers and Node.js returns a different number. Send large IDs as strings.

Common uses

  • Finding the exact syntax error in a config file, API request body or webhook payload.
  • Checking API responses for duplicate keys and IDs that lose precision in JavaScript clients.
  • Getting the path of a deeply nested field for use in code, jq, JSONPath queries or JSON Patch.
  • Auditing an unfamiliar document: size, depth and which fields are strings, numbers or nulls.

What the validator checks

Syntax is checked strictly against RFC 8259, the JSON standard: double-quoted strings and property names, no trailing commas, no comments, lower-case true, false and null, no leading zeros, no NaN or Infinity, and properly escaped control characters.

Valid JSON can still cause trouble, so these are reported as warnings:

  • Duplicate keys — RFC 8259 says names should be unique and that receivers behave unpredictably when they are not; most keep only the last value.
  • Unsafe integers — RFC 8259 notes that only integers between −(2^53 − 1) and 2^53 − 1 are interoperable. Larger integers that cannot be stored exactly as a 64-bit float are listed with the value JavaScript would actually produce.
  • Rounded, overflowing or underflowing numbers — more than 17 significant digits, values like 1e400 (Infinity in JavaScript) or 1e-400 (becomes 0).
  • Unpaired surrogates such as "\uD800" — not valid Unicode; strict parsers reject them.
  • Byte order mark at the start of the text — RFC 8259 forbids adding one.

JSONPath and JSON Pointer

JSONPath (RFC 9535) starts at $ and uses .name for simple keys, ['odd key'] for keys with spaces or symbols, and [0] for array positions. The same notation works in JavaScript after replacing $ with your variable name.

JSON Pointer (RFC 6901) is the slash-separated form used by JSON Patch, JSON Schema $ref and OpenAPI: /books/0/title. A ~ in a key is written ~0 and a / is written ~1.

Limitations

  • This is a syntax and structure validator. It does not validate against a JSON Schema.
  • JSON5, JSONC (JSON with comments) and JSON Lines are reported as invalid JSON, because standard parsers reject them.
  • The paths table lists the first 100,000 paths (fewer for extremely deeply nested documents, whose paths get very long); statistics and warning counts always cover the whole document.
  • Very large documents (tens of megabytes) are validated in your browser and can take a few seconds on older phones.

Privacy

Everything happens in your browser. What you enter or open here is not uploaded or stored by MySmartCoPilot.

Frequently asked questions

Is my JSON uploaded anywhere?

No. Validation runs entirely in your browser, so it is safe to check payloads that contain tokens or personal data. It keeps working if you go offline after the page has loaded.

Why does another validator accept JSON that this one rejects?

Some tools use a relaxed parser that allows comments, single quotes or trailing commas. Those are not JSON, and standard parsers such as JSON.parse, Python's json module or Go's encoding/json reject them. This validator follows RFC 8259 exactly.

Are duplicate keys an error?

Not in the grammar, so the document is still reported as valid — but RFC 8259 says the behaviour of receiving software is unpredictable. Most parsers silently keep the last value, which hides bugs, so the validator lists each duplicated key and the object it is in.

Why is a big number flagged when the JSON is valid?

JavaScript (and many other languages) stores JSON numbers as 64-bit floats. Integers above 9,007,199,254,740,991 cannot all be represented, so JSON.parse("12345678901234567890") gives 12345678901234567000. If the value is an ID, send it as a string.

Can I validate against a JSON Schema?

Not here. This tool checks syntax and reports structure; schema validation needs a schema engine, which this page does not include. Use the paths table to see exactly which fields and types your document has.

Quick answers and tool search

Type to search tools or to get a quick answer, for example 18% of 2500. Use the up and down arrow keys to move through the results, Enter to choose, and Escape to close.