QA
JSON / YAML Deep Diff
Load two structured documents, choose array semantics explicitly, and export a path-addressed change report.
How this tool works
A text diff confuses formatting changes with data changes. Structural comparison parses each document first and walks objects and arrays using stable paths.
The report distinguishes additions, removals, value changes, and type changes. YAML anchors are resolved by the parser; YAML comments and scalar styling are not part of the resulting data model.
Examples
- Compare two API fixtures with reordered object keys.
- Find a number that became a string.
- Review environment YAML without treating indentation changes as data changes.
Common use cases
Comparison rules
- Objects are compared by member name.
- Arrays are index-based by default.
- Unordered primitive mode preserves duplicate counts but does not claim semantic equality for object arrays.
- JSON and YAML can compare equal when they parse to the same data model.
What the diff cannot decide
A structural diff cannot know whether order is meaningful to a particular API, whether a missing value is equivalent to null, or whether 1 and 1.0 should retain different source spelling. Those questions belong to the consuming contract.
Type change
Invalid/failure example
left: {"count": 2} right: {"count": "2"}
Expected: type $.count
Related guides
Official references
FAQ
Does this tool send the pasted data or execute an API request?
No. Analysis runs in this browser tab. The tool does not call pasted URLs, resolve remote references, or submit the input to a DevPouch processing endpoint.
Are arrays compared by position?
Yes by default. The optional unordered mode is limited to primitive-only arrays and compares value multiplicity; nested object arrays remain index-based.
Does key order create a difference?
No. Parsed object member order is ignored. Array order remains meaningful unless the safe primitive-only unordered option is selected.