How this tool works
The two documents are compared structurally rather than as text, walking both trees together and reporting each difference by its path. That is what makes the result useful: reformatting a file, reordering its keys or changing its indentation produces no differences at all, where a text comparison would report the whole file as changed.
Three settings change what counts as a difference. Ignoring array order compares arrays as sets, which is right for a list of tags and wrong for an ordered sequence. Loose type comparison treats the string 1 and the number 1 as equal, which is useful when one side has been through a system that stringifies everything. Showing unchanged values makes the output complete rather than only reporting deltas.
Reading the comparison
- Paths tell you where, not why: each difference is reported by its location in the tree, which is what you need to find it in the source. Two documents may differ in one field at fifty paths if that field repeats.
- Array order matters unless you say otherwise: by default an element that moved is a difference. That is correct for an ordered list and noise for an unordered one.
- Type changes are reported as changes: a field that was a number and is now a string differs even when it looks the same printed, and that is exactly the kind of fault worth catching.
- It compares data, not formatting: whitespace, key order and indentation are invisible to it. Use a text comparison if formatting is what you are checking.