Free JSON Diff & Schema Validator

JSON Diff & Schema Validator

Semantic JSON diff, JSON Schema validation, and JSON formatter, all client-side. Your data never leaves the browser.

JSON Diff

JSON Schema Validator

JSON Formatter

Frequently Asked Questions

What is JSON Diff?

A JSON diff compares two documents and highlights exactly which fields were added, removed, or changed. Unlike a raw text diff that treats JSON as plain lines, a semantic diff first parses both inputs, sorts all object keys recursively, then re-serialises them before comparing line by line. This means that {"b":2,"a":1} and {"a":1,"b":2} produce no diff at all, since they represent identical data. Semantic diffing is the right approach for reviewing API changes, comparing Terraform state, and auditing configuration drift where key ordering is irrelevant but value changes matter.

JSON Schema Validation

JSON Schema validation checks whether a JSON document conforms to a set of explicit rules. Where unit tests check runtime behaviour, schema validation checks data shape, meaning whether a field exists, whether it has the right type, and whether its value falls within defined constraints. This catches problems like a missing required field in an API request body, a string value where a number is expected, or a configuration value outside the allowed set. Teams use schemas at CI boundaries, in API gateways, and in infrastructure pipelines to prevent malformed data from reaching production systems.

JSON Diff vs. a Plain Text Diff

A plain text diff, the kind you get from git diff or most editors, compares files line by line. That works fine until something reorders keys without changing any values, at which point a text diff reports the whole block as changed even though nothing meaningful happened. This is a constant source of noise when comparing Terraform state, Kubernetes manifests exported by different tools, or API responses serialized by libraries that don't guarantee key order. Normalising both documents first, sorting every object's keys recursively before comparing, removes that noise entirely and leaves only the differences that actually matter.

Common Places This Tool Gets Used

Comparing a Terraform plan's JSON output against the previous apply to catch unexpected resource replacements before they hit production. Diffing two versions of a Kubernetes manifest to see exactly which fields a Helm upgrade or kustomize overlay actually changed. Checking whether an API's response shape drifted between staging and production, or between two versions of a third-party integration. Validating a webhook payload or CI configuration file against a schema before it's allowed to merge, so malformed data gets caught in review instead of at runtime.