How the comparison works
Both documents are parsed, then walked together. Object keys are matched by name, so the order in which they were written does not matter. Array items are matched by position. Each place where the two differ is listed with its path, which starts at $, the whole document.
~ $.status: "placed" -> "shipped"
~ $.items[0].qty: 200 -> 250
- $.items[1].backorder: true
+ $.items[2]: {"sku":"WASHER-M6","qty":500,"unitPrice":0.02}
~ $.notes: null -> "Leave at dock"That is the report for the sample on this page. + marks an added value, - a removed one and ~ a changed one. Copy report puts these lines on the clipboard, all of them.
What counts as a difference
Indentation, line breaks and key order are not differences. A value whose type changed is one: 10 and "10" look alike on screen, but a program reads them differently, so the row names both types. A reordered array shows as changes at each position it occupies, because its items are compared by place. Text inside a string is compared exactly, so an extra space is a change.
When the input is not valid
A document that does not parse is not compared. The page names the side, Before or After, and the line and column of the first error. Text that is almost JSON can be cleaned up first with the Repair option of the JSON formatter.
Sending a document on
Send after to passes the After document to the JSON formatter, the validator, the TypeScript generator or the CSV converter. It travels in memory, with no file and no upload, and the tool you pick opens with it. For YAML or XML, open that converter, choose JSON → YAML or JSON → XML, and paste the document.