folio.

Compare JSON without the noise of reordered keys

Two configuration records can contain the same values but look very different in a text diff. Indentation and object key order often account for the noise. Separate those formatting differences from value differences before deciding what needs attention.

Object order and array order are different

These two JSON objects have the same members:

{"name":"Folio","theme":"dark"}
{"theme":"dark","name":"Folio"}

JSON defines objects as unordered collections. Arrays, in contrast, are ordered sequences. Changing ["read","compare"] to ["compare","read"] should therefore remain visible when comparing JSON data.

Try the workflow

  1. Open the example below. Both inputs contain the same data in different object key orders.
  2. Folio first formats the JSON so indentation is consistent. Reordered keys can still appear as differing lines.
  3. Enable Sort keys in the toolbar.
  4. The differing-line count becomes zero. The values have not been edited; both inputs are compared using sorted object keys.

Open the JSON key-order example

To use your own data, start a new comparison, paste both inputs, choose JSON, then compare. Use Sort keys when key order is irrelevant to your task. Turn it off when you need to review the original ordering. Sorting is recursive and leaves array element order intact.

Check that content differences remain visible

After trying the example, choose Edit source and change the theme value in one input. Compare again with sorting enabled. The value difference still appears, and the Inspector can show the JSON path with its values in Content A and Content B.

For a second check, reverse the elements in one features array. Sorting keys does not make that array equal. This prevents a convenient formatting option from silently hiding an order-sensitive difference.

Know the limits before interpreting a result

Choose Normalized JSON to remove indentation noise and enable Sort keys. Choose JSON as entered to compare the original spacing; this turns off Auto-format and key sorting. Search positions and line numbers refer to the selected representation. Folio is not a schema validator, an object merge engine, or a complete semantic equivalence proof.

JSON number tokens are preserved exactly, including large integer identifiers and exponents such as 1e400. Folio does not round them through JavaScript numbers or convert them to null. Duplicate object keys are retained and flagged because other tools may interpret them differently. Numeric spellings such as 1, 1.0 and 1e0 remain distinguishable; Normalized JSON removes formatting noise rather than proving mathematical equivalence. Line endings still normalize to LF in both modes.

Malformed JSON produces an error with an option to edit the source. Correct the syntax, then compare again. Documents stay in your browser; use Export to keep the report before closing.

Reference: RFC 8259: JSON, sections on objects, arrays, numbers, and interoperability.

Watch the 24-second walkthrough

Edited from actual Folio screenshots. On-screen captions; no narration.