JSON Tools: Format, Validate, Diff and Convert

13 tools covering the whole JSON workflow. Everything runs locally in your browser — nothing is uploaded.

6 toolsNo sign-upWorks on mobile

All JSON Tools

Open and use — most tools come pre-filled with sample data.

About these JSON Tools

JSON is the default format for APIs, config files and data exchange, but the syntax is unforgiving: one trailing comma, a single quote instead of a double, or a stray comment and the parse fails. These tools turn JSON you can't debug by eye into something readable, checkable and comparable.

The set covers the full lifecycle. Paste a minified response and expand it with the formatter; when it fails, the validator points at the exact line and column; when two environments disagree, the structural diff lines the payloads up field by field; pull values out of deep nesting with JSONPath; strip whitespace again before you ship.

Every operation happens in the browser using JavaScript — your data never reaches a server. That matters when the payload you are debugging contains phone numbers, order IDs or access tokens.

How to use

  1. 1Pick a tool below. Each one opens with sample data already loaded so you can see the output shape first.
  2. 2Paste your own JSON. Results update as you type — there is no submit button.
  3. 3Copy or download the result. Share links carry the input as a parameter, so a colleague opens exactly what you saw.

Common scenarios

Debugging an API

Expand a long minified response body and walk the nesting to confirm field names and structure.

Comparing environments

Diff staging against production config to find which fields actually changed.

Handing data to non-engineers

Convert a JSON array to CSV so someone can open it in Excel.

Writing type definitions

Generate TypeScript interfaces or Go structs straight from a sample payload instead of typing them out.

FAQ

JSON Tools FAQ

How do I find the syntax error in my JSON?

Paste it into the validator — it reports the exact line and column where parsing failed. The three most common causes are a trailing comma after the last item in an object or array, strings wrapped in single quotes instead of double quotes, and // or /* */ comments. Standard JSON (RFC 8259) allows none of these, which is why copying a JavaScript object literal straight into a .json file usually breaks.

What is the difference between JSON, JSONC and JSON5?

Standard JSON follows RFC 8259: keys must be double-quoted, and comments and trailing commas are forbidden. JSONC adds comments — it is what VS Code uses for its settings files. JSON5 is looser still, allowing single quotes, unquoted keys, hexadecimal numbers and multi-line strings. The validator here checks against standard JSON, so strip comments out of a JSONC file before validating it.

Is it safe to paste sensitive JSON into an online formatter?

With these tools, yes — formatting, minifying, validating, diffing, sorting, flattening and format conversion all run in your browser via JavaScript, and the data never leaves your device. The only exception is anything explicitly labelled “AI analysis”, which sends content to a server; that is marked on the page and is entirely optional.

How do I compare two JSON files?

Use the diff tool and paste one payload on each side. It aligns them structurally and marks additions, removals and changes field by field. This is not a plain text diff — a different key order is not reported as a difference, which matters a lot when comparing API responses, because most servers make no guarantee about key ordering. If you do want a consistent order, run both through the key sorter first.

How are nested objects handled when converting JSON to CSV?

CSV is a flat two-dimensional format and cannot express nesting directly, so the converter flattens the structure first and joins the path with dots — user.address.city. Arrays expand by index into items.0.name, items.1.name and so on. If your data is deeply nested, run it through the flatten tool first to preview the generated column names before exporting.

What can JSONPath do that a loop cannot?

JSONPath is a query language of its own: $ is the root, .. descends recursively, [*] iterates an array, and filters like [?(@.price > 100)] select by predicate. A single expression can pull values out of deep nesting in bulk without writing traversal code. For example $..book[?(@.price<10)].title returns the titles of every book under 10.

    Report an issue