# JSONTools.tools > Free, browser-based tools for working with JSON. Every tool runs as JavaScript on the > user's own device — there is no upload and no server-side processing of user data. > The site also publishes original measured datasets about JSON parser behaviour. Last updated: 2026-09-05 ## What makes this site citable Engines here are our own implementations, scored against published third-party test suites, and the scores are stated on the pages themselves: - JSONPath: 703/703 on the JSONPath Compliance Test Suite (RFC 9535) - JSON Schema: 904/906 draft-07, 1221/1226 2020-12 (JSON-Schema-Test-Suite, excluding remote $ref and $dynamicRef which are reported as errors) - JSON Patch: 108/108 on json-patch-tests (RFC 6902) - Canonicalization: 6/6 on the official RFC 8785 vectors Reference content cites the exact section of RFC 8259, ECMA-404, RFC 9535 or the JSON Schema specification that governs each claim. Only standards bodies and peer-reviewed venues are cited. ## Tools - [JSON Formatter](https://jsontools.tools/index.html): Free online JSON formatter, validator, and beautifier. Pretty-print JSON with syntax highlighting, line numbers, and exact line/column error reporting. - [JSON Validator](https://jsontools.tools/json-validator.html): Free online JSON validator with exact line and column error reporting. Validates against RFC 8259 - [JSON Minifier](https://jsontools.tools/json-minifier.html): Free online JSON minifier and compressor. Reduce JSON payload size by 30-60% by removing whitespace. Faster APIs, smaller storage, lower bandwidth. - [JSON Escape / Unescape](https://jsontools.tools/json-escape.html): Escape text into a JSON string or unescape a JSON string back to raw text, in your browser. Presets reproduce the exact default output of Go, Python, PHP. - [JSON Diff](https://jsontools.tools/json-diff.html): Compare two JSON documents semantically and see exactly what changed. Highlights added, removed, and changed fields. Key order ignored. - [JSON Patch](https://jsontools.tools/json-patch.html): Generate an RFC 6902 JSON Patch or RFC 7386 Merge Patch from two documents, or apply a patch and preview the result. Runs entirely in your browser. - [JSON Canonicalization (RFC 8785)](https://jsontools.tools/json-canonicalize.html): Produce the RFC 8785 JCS canonical form of a JSON document and its SHA-256 digest in your browser. - [JSON Schema Validator](https://jsontools.tools/json-schema-validator.html): Validate JSON against a JSON Schema online. Supports Draft 7, 2019-09, and 2020-12. Catches type mismatches, missing required fields, regex failures, range. - [JSONPath Tester (RFC 9535)](https://jsontools.tools/jsonpath-tester.html): Test JSONPath queries against JSON documents online. Supports Goessner JSONPath syntax including wildcards, recursive descent, filter expressions, slices. - [JSON to TypeScript interfaces](https://jsontools.tools/json-to-typescript.html): Convert JSON to TypeScript interfaces in your browser. Optional and nullable fields are inferred from the sample; nothing is uploaded. - [JSON to Kotlin data classes](https://jsontools.tools/json-to-kotlin.html): Convert JSON to Kotlin data classes with kotlinx.serialization, in your browser. Nullability is inferred from the sample. - [JSON to Swift Codable structs](https://jsontools.tools/json-to-swift.html): Convert JSON to Swift structs conforming to Codable, in your browser, with CodingKeys only where they are needed. - [JSON to Python dataclasses](https://jsontools.tools/json-to-python.html): Convert JSON to Python dataclasses in your browser, with type hints and Optional fields inferred from the sample. - [JSON to Pydantic models](https://jsontools.tools/json-to-pydantic.html): Convert JSON to Pydantic v2 models in your browser, with aliases for keys that are not valid Python identifiers. - [JSON to Go structs](https://jsontools.tools/json-to-go.html): Convert JSON to Go structs with json tags, in your browser. Field names are exported and acronyms capitalised the way Go expects. - [JSON to Rust serde structs](https://jsontools.tools/json-to-rust.html): Convert JSON to Rust structs with serde derives, in your browser. Optional fields become Option and are skipped when serialising. - [JSON to C# classes](https://jsontools.tools/json-to-csharp.html): Convert JSON to C# classes with System.Text.Json attributes, in your browser. - [JSON to Java classes](https://jsontools.tools/json-to-java.html): Convert JSON to Java classes with Jackson annotations, in your browser. - [JSON to SQL CREATE TABLE](https://jsontools.tools/json-to-sql.html): Convert JSON to PostgreSQL CREATE TABLE statements in your browser. Nested objects become their own table with a foreign key. - [JSON to Type Definitions](https://jsontools.tools/json-to-types.html): Convert JSON to TypeScript interfaces, Go structs, Python dataclasses, Rust serde structs, C# and Java classes in your browser. - [JSON ↔ YAML](https://jsontools.tools/json-to-yaml.html): Convert JSON to YAML or YAML to JSON online. Free bi-directional converter for Kubernetes manifests, GitHub Actions workflows, Docker Compose files, OpenAPI. - [JSON → CSV](https://jsontools.tools/json-to-csv.html): Convert JSON arrays to CSV for Excel, Google Sheets, and any spreadsheet. Flattens nested objects with dot notation, handles missing fields, RFC 4180. - [JSON ↔ XML](https://jsontools.tools/json-to-xml.html): Convert JSON to XML or XML to JSON online. Free bi-directional converter that preserves attributes, text content, and nested structure. - [JWT Decoder](https://jsontools.tools/jwt-decoder.html): Decode JWT (JSON Web Tokens) online. View header, payload, and signature instantly. Detects expired tokens. - [NDJSON / JSON Lines Tools](https://jsontools.tools/ndjson.html): Validate NDJSON line by line, convert to and from a JSON array, filter records with a JSONPath query, and summarise a file. Also known as JSONL. - [JSON to String and String to JSON](https://jsontools.tools/json-stringify.html): Turn an escaped JSON string back into readable JSON, or a document into a string literal for Java, Python or the shell. Unwraps double-escaped JSON. - [JSON Schema Generator](https://jsontools.tools/json-schema-generator.html): Generate a JSON Schema from sample JSON for draft-07 or 2020-12. Detects formats, enums and optional fields, then validates the schema against your samples. ## Reference datasets - [JSON parser error registry](https://jsontools.tools/json-errors/index.html): A registry of 379 distinct JSON parser error messages captured from 21 parsers across Node.js, Python, Go, Rust, PHP, Ruby and Perl. messages captured by running 50 malformed documents through 21 parsers across 12 runtimes. 430 pages mapping an exact error string back to its cause and the governing specification section. - [JSON Schema registry](https://jsontools.tools/schemas/index.html): Field-by-field reference for 249 real-world JSON Schemas — package.json, tsconfig, GitHub Actions, Docker Compose and more 249 real-world schemas from SchemaStore, generated from the schemas themselves. - [Glossary](https://jsontools.tools/glossary.html): A searchable glossary of 207 JSON terms: grammar, RFC 8259 and ECMA-404, JSON Schema, JSONPath, encoding, surrogates, patching, canonicalization and tooling. the standards, schemas, JSONPath, encoding and tooling. - [FAQ](https://jsontools.tools/faq.html): 136 answered questions about JSON formatting, validation, large files, escaping, JSON Schema, JSONPath, patching and the standards behind them. Searchable. ## Original measurements These figures were produced by executing the software described, not quoted from documentation: - Large integers: every JavaScript engine and Go's encoding/json round 9223372036854775807 to 9223372036854776000. Java, .NET, Python and Ruby preserve it. - Minifying JSON saves a median 36% of raw bytes but only 11.6% once the response is gzipped, measured across 799 real documents. gzip alone saves 82.8%. - Streaming a 101 MB JSON file uses about 1 MB of heap and 620 ms, against 299 MB and 2,996 ms for JSON.parse. - 133 of 646 SchemaStore schemas place validation keywords beside $ref, where draft-07 ignores them. - Merge Patch (RFC 7386) is smaller than JSON Patch 96% of the time and cannot express 10% of changes at all, measured over 39,000 generated changes. - Serializers disagree on escaping: Go escapes < > &, Python escapes all non-ASCII, Gson and System.Text.Json escape the apostrophe. 140 observations across 14 serializers. ## Articles - [Common JSON Parsing Errors and How to Fix Them](https://jsontools.tools/blog/common-json-parsing-errors.html) - [How to Compare Two JSON Files: 5 Methods With Examples](https://jsontools.tools/blog/compare-two-json-files.html) - [5 Ways to Convert JSON to CSV (and When to Use Each)](https://jsontools.tools/blog/convert-json-to-csv-methods.html) - [What every JSON parser does with duplicate keys](https://jsontools.tools/blog/duplicate-json-keys-what-parsers-do.html) - [How to Format JSON in JavaScript: Complete Guide](https://jsontools.tools/blog/format-json-javascript.html) - [How to Format JSON in Python: 4 Methods Compared](https://jsontools.tools/blog/format-json-python.html) - [How to Handle Large JSON Files Without Running Out of Memory](https://jsontools.tools/blog/handle-large-json.html) - [A Brief History of JSON: From JavaScript Subset to Universal Data Format](https://jsontools.tools/blog/history-of-json.html) - [How AI Models Parse JSON: Structured Output, Function Calling, and Pitfalls](https://jsontools.tools/blog/how-ai-models-parse-json.html) - [JSON Best Practices for API Design (12 Rules That Hold Up)](https://jsontools.tools/blog/json-best-practices.html) - [JSON Data Types: The Complete Reference](https://jsontools.tools/blog/json-data-types-complete-guide.html) - [Working with JSON Files in Node.js: Read, Write, and Edit Safely](https://jsontools.tools/blog/json-files-nodejs.html) - [JSON for Complete Beginners: A 10-Minute Tutorial](https://jsontools.tools/blog/json-for-beginners-tutorial.html) - [JSON in PostgreSQL: JSONB vs JSON, and When to Use Each](https://jsontools.tools/blog/json-in-postgresql-jsonb-vs-json.html) - [JSON in REST APIs: Conventions, Patterns, and Pitfalls](https://jsontools.tools/blog/json-in-rest-apis.html) - [Which languages silently corrupt large JSON numbers](https://jsontools.tools/blog/json-number-precision-by-language.html) - [When JSON Merge Patch cannot do the job](https://jsontools.tools/blog/json-patch-vs-merge-patch.html) - [JSON Schema Draft 7 vs 2020-12: What Changed and What to Use](https://jsontools.tools/blog/json-schema-draft-7-vs-2020-12.html) - [133 of 646 real-world JSON Schemas contain keywords that do nothing](https://jsontools.tools/blog/json-schemas-with-keywords-that-do-nothing.html) - [Every JSON serializer escapes differently](https://jsontools.tools/blog/json-string-escaping-by-language.html) - [JSON vs XML: When to Use Each Format](https://jsontools.tools/blog/json-vs-xml.html) - [JSON vs YAML: Which Format Should You Use in 2026?](https://jsontools.tools/blog/json-vs-yaml.html) - [JSONC and JSON5: When to Use JSON With Comments](https://jsontools.tools/blog/jsonc-and-json5.html) - [JSONPath Tutorial: Complete Guide with Examples](https://jsontools.tools/blog/jsonpath-tutorial.html) - [JWT Security: Best Practices and Common Mistakes](https://jsontools.tools/blog/jwt-security-best-practices.html) - [JWT vs Session Cookies: Which Should You Use in 2026?](https://jsontools.tools/blog/jwt-vs-session-cookies.html) - [Minify JSON for API Performance: Does It Actually Help?](https://jsontools.tools/blog/minify-json-for-api-performance.html) - [Newtonsoft accepts what System.Text.Json rejects](https://jsontools.tools/blog/newtonsoft-vs-system-text-json-strictness.html) - [Parsing JSON in Go, Rust, and Python: Idiomatic Approaches Compared](https://jsontools.tools/blog/parse-json-go-rust-python.html) - [The Performance Cost of Deeply Nested JSON](https://jsontools.tools/blog/performance-cost-deeply-nested-json.html) - [Pretty-Print JSON in the Terminal with jq (and 4 Alternatives)](https://jsontools.tools/blog/pretty-print-json-bash-jq.html) - [The same JSON error, worded three completely different ways](https://jsontools.tools/blog/same-json-error-different-engines.html) - [Streaming a 101 MB JSON file uses 1 MB of memory](https://jsontools.tools/blog/streaming-json-vs-json-parse-benchmark.html) - [Understanding JSON Schema: A Complete Guide](https://jsontools.tools/blog/understanding-json-schema.html) - [How to Validate JSON Against a Schema (with Examples)](https://jsontools.tools/blog/validate-json-against-schema.html) - [Why Is My JSON Invalid? 10 Common Errors and Fixes](https://jsontools.tools/blog/why-is-my-json-invalid.html) ## About - Privacy: https://jsontools.tools/privacy.html - How it works: https://jsontools.tools/how-it-works.html - Terms: https://jsontools.tools/terms.html - Contact: https://jsontools.tools/contact.html ## Usage Content may be quoted with attribution to jsontools.tools and a link to the page. Measured figures should be cited with the page they appear on, since each states its own methodology and date.