JSON Tools / JSON to XML
Convert JSON into well-formed XML. Keys starting with @ become attributes, #text becomes text content, and arrays become repeated elements.
Lossless pretty printing that never rounds big numbers, minify with byte savings, and one-click repair for comments, trailing commas, quotes and Python literals.
Human-readable errors with exact line and column, inline squiggles, and warnings for duplicate keys and numbers beyond the safe integer range.
Explore huge documents as a searchable tree with path copying, or view arrays of objects as a sortable, filterable grid.
Filters, slices, recursive descent and regex — or arbitrary JavaScript transforms in a sandboxed worker.
Compare two documents ignoring key order, match array items by id, and see every added, removed and changed path.
Validate against draft 2020-12, 2019-09 or draft-07 with clickable errors, or infer a schema from your data.
JSON to and from YAML, CSV, TSV, XML, TOML, NDJSON, query strings and JWTs.
TypeScript, Zod, Go, Rust, Python (Pydantic) and Kotlin from sample data, with optional and nullable fields inferred.
Nothing is uploaded. Documents stay in your browser, share links live in the URL fragment, and the app works offline once installed.
No. Every tool runs entirely in your browser. Documents are saved only to your device's local storage, and share links keep the data in the URL fragment, which browsers never send to a server.
Yes. JSON Tools is an installable Progressive Web App. After your first visit it works fully offline, and you can add it to your home screen or dock like a native app.
No. The formatter is lossless: it keeps the exact digits you wrote, so large integers such as 64-bit IDs and precise decimals are never rounded the way JSON.parse would round them.
Yes. Repair handles comments, trailing commas, single quotes, unquoted keys, Python True/False/None, NaN and Infinity, missing commas, unclosed brackets and newline-delimited JSON, and lists every change it made.
Dot and bracket notation, wildcards, recursive descent (..), index lists, negative indices, slices with steps, and filters with comparisons, &&, ||, !, regex matching (=~), 'in' and functions like length(). JavaScript expressions are also supported for arbitrary transforms.
Multi-megabyte documents work well. The editor, validator and tree view are all designed for large inputs: the tree renders lazily and long arrays are paged.