PasteSheet icon PasteSheet logo mark — a spreadsheet grid with a curly brace on a green rounded square PasteSheet

Format and validate JSON

Paste JSON and get it back indented and syntax-highlighted. If it is invalid, you get the parser's exact complaint and where it happened, which is the part you actually needed.

Your JSON

Nothing is stored.

It tells you where it broke

Most of the time you are not here to make JSON pretty — you are here because something rejected it and you want to know why. So when the input does not parse, this reports the specific error (Syntax error, Control character error, Malformed UTF-8) rather than a generic "invalid JSON", and it does not silently repair anything.

Valid input is re-emitted with two-space indentation, slashes left unescaped and Unicode left as-is, so a URL stays readable and an accented name stays an accented name instead of becoming é.

The usual culprits

If it will not parse, it is almost always one of these — none of which are legal JSON, however normal they look in JavaScript:

  • A trailing comma after the last element of an object or array.
  • Single quotes around strings or keys. JSON requires double quotes.
  • Unquoted keys — legal in a JavaScript object literal, not in JSON.
  • Comments. JSON has none, whatever your editor lets you type.
  • NaN, Infinity or undefined — all JavaScript values with no JSON representation.

If the JSON is coming from a spreadsheet

A PasteSheet endpoint serves a Google Sheet as JSON that is valid by construction — you never hand-edit it, so it never develops a trailing comma. Convert a sheet to JSON to see the shape it produces.

Frequently asked questions

Why is my JSON invalid when it looks fine?

Usually a trailing comma, single quotes instead of double quotes, an unquoted key, or a comment. All four are perfectly normal JavaScript and none of them are legal JSON, which is exactly why they are so easy to miss when you are reading the file.

Does it change my data?

No. It re-indents valid JSON and returns it. Nothing is reordered, no keys are renamed, no values are coerced, and nothing is auto-repaired — if the input will not parse, you get the error rather than a guess at what you meant.

Is my JSON stored or logged?

No. It is parsed, formatted and returned. Nothing is written to a database, logged or shared. As with any online formatter, if the payload contains secrets or personal data, do not paste it in the first place.

Sources

Related tools

Turn your sheet into an API in minutes

Paste a Google Sheet URL and get a live REST API and MCP server — no backend, no code, free to start.