JSON Input
Node Details
Select a node to view details
Query any JSON with live JSONPath evaluation — wildcards, recursive descent, slices and filters, all in your browser.
Select a node to view details
Format, validate, and explore JSON — 100% client-side, private by design
Paste XML, get clean JSON — attributes, repeated elements and text nodes handled correctly
Turn CSV rows into JSON arrays of objects — quoted fields, custom delimiters and types handled for you
Flatten nested JSON into clean CSV columns — download Excel-ready .csv files in one click
Compress JSON to a single line and watch exactly how many bytes you save
Compare two JSON documents semantically — key order and whitespace never count as differences
Escape JSON strings for embedding — or unescape stringified logs back into readable JSON
One-click repair for broken JSON, JSON5, JS objects, Python dicts and truncated LLM output.
Turn any JSON payload into clean TypeScript interfaces or type aliases — merge arrays, detect optional fields and unions.
Parse YAML configs — K8s, Docker Compose, GitHub Actions — into clean JSON, then explore and edit visually.
Generate clean, idiomatic YAML from any JSON — smart string quoting, compact list style, 2 or 4 space indent.
Serialize JSON to well-formed XML — @_ attributes, repeated elements, text nodes and safe tag names.
Infer a standards-compliant JSON Schema from example data — formats, required keys, unions and additionalProperties control.
Query any JSON with live JSONPath evaluation — wildcards, recursive descent, slices and filters, all in your browser.
Search every level of the document at once — $..price finds price fields wherever they hide.
Conditions like [?(@.price < 20)] or [?(@.inStock == true)] with && and || support.
Negative indices, [0:2] slices and multi-index [0,2] selection, plus * wildcards on objects and arrays.
Toggle path display to see exactly where each match lives — $.store.books[3].title style output.
Drop any JSON document into the input panel — the tree parses instantly.
Type an expression or click a preset — results refresh live as you type.
Copy matched values (or paths) to the clipboard for queries, tests or docs.
How formatjson.net compares to traditional server-based JSON formatters and converters
| Capability / Standard | formatjson.net (Client-Side Workbench) | Traditional Server-Based Tools |
|---|---|---|
| Data Processing & Privacy | 100% local in-browser JavaScript — payloads never leave your device | Often uploads JSON/XML/CSV to remote backend servers |
| Confidential API Keys, JWTs & PII | Safe by design — zero network transmission, works offline via Service Worker | Risk of server access logs or third-party data retention |
| Broken & Truncated LLM JSON Repair | 1-click lexical state machine fixes comments, single quotes, trailing commas, Python literals & unclosed brackets | Fails with syntax error on non-strict JSON |
| 64-Bit Snowflake IDs & Leading Zeros | Preserves unsafe integers (> 2^53 - 1) and leading-zero codes ("00123") without precision loss | Silently truncates 64-bit IDs or strips leading zeros |
| Deep Nested Array Exploration | Interactive spreadsheet drill-down ([n items] →) with breadcrumbs, 3-state sorting & inline cell editing | Flat root-only tables or read-only trees |
| Large File Responsiveness | Chunked lazy tree (200 nodes/batch) + paginated table + 150 KB highlight guard | Main-thread DOM freeze on multi-megabyte files |
Dot notation $.a.b, bracket keys ['a b'], wildcards [*], recursive descent .., negative indices, slices [s:e:step], multi-index [0,2] and filters [?(@.x > 1)] including existence checks, =~ regex and && / ||.
Use $.store.books[?(@.price < 20)] — the filter evaluates @ against each array element.
Every descendant node in the document — handy to explore unknown structures quickly.
Enable "Include matched paths" to output [{ path, value }] objects with full JSONPath locations.
Yes — a custom zero-dependency evaluator runs entirely in your browser.