Loading Techie Utils…

INI Compare & Diff

Compare two INI documents and see what changed, path by path. Free, and runs entirely in your browser — nothing you enter is uploaded or stored.

About Structure Compare

Compares two documents by structure rather than by line. Each side is parsed, and the result is a list of paths that were added, removed or changed — so a file whose keys were reordered or reindented reports no differences at all.

That is the difference between this and a text diff. {"a":1,"b":2} and {"b":2,"a":1} are the same data, and a line diff will insist otherwise every time.

Where it helps

  • Reordered keys and reindented files are not reported as changes.
  • Every difference is addressed by path, so you can jump straight to it.
  • The same comparison works for markup, which is described as values first.
  • Both documents stay in the browser, which matters when comparing production configuration.

Limits

  • Array comparison is positional: inserting an item at the front reports every later index as changed.
  • XML is compared through a value model, so comments and whitespace are not part of the comparison.
  • It reports what differs, not a patch you can apply.
  • Both sides must parse; use Structure Repair first if one of them does not.

Frequently asked questions

Why is my whole array marked as changed?

Items are compared by position. An insertion at the start shifts everything after it, so every later index differs. Compare sorted arrays where order is not significant.

How is this different from Text Comparison?

Text Comparison diffs lines, which is right for logs and prose. This one understands the document, so formatting and key order are ignored.

Are XML attributes compared?

Yes — they appear as @name entries in the value model, so a changed attribute shows up as a changed path.

Can I compare two different formats?

Not in one run. Convert one side first with the YAML or XML converters, then compare like with like.

Related tools

  • Tree Viewer — Explore JSON, XML, YAML, TOML, TOON or HCL as a collapsible tree
  • Text Comparison — Line-by-line diff of two blocks of text
  • Structure Formatter — Pretty-print JSON, XML, YAML, TOML, TOON or HCL with a chosen indent
  • Structure Validator — Check JSON, XML, YAML, TOML, TOON or HCL and report structural problems
  • Structure Converter — Convert between JSON, XML, YAML, TOML, TOON, HCL and CSV
  • String Escaper — Escape a JSON, XML, YAML, TOML or TOON document for embedding, or read one back

More Structured Formats tools

  • Structure Converter — Convert between JSON, XML, YAML, TOML, TOON, HCL and CSV
  • String Escaper — Escape a JSON, XML, YAML, TOML or TOON document for embedding, or read one back
  • Structure Formatter — Pretty-print JSON, XML, YAML, TOML, TOON or HCL with a chosen indent
  • Structure Validator — Check JSON, XML, YAML, TOML, TOON or HCL and report structural problems
  • Tree Viewer — Explore JSON, XML, YAML, TOML, TOON or HCL as a collapsible tree
  • Code Generator — Turn a JSON, YAML, XML or other document into TypeScript, Go, C#, Python, Rust and more
  • Schema Generator — Write a JSON Schema, XSD, Avro schema or .proto from a document you already have
  • Schema Validator — Check a document against a JSON Schema, .proto, Avro schema, XSD or RELAX NG
  • Table Viewer — Show the records in a JSON, XML, YAML, TOML or TOON document as a table
  • Structure Compare — Diff two JSON, XML, YAML, TOML, TOON or HCL documents by path
  • Structure Repair — Fix broken JSON, YAML, XML, TOML, TOON, INI, .env, .properties and HCL, listing every repair
  • Structure Minifier — Strip formatting from JSON, XML, YAML, TOML or TOON
  • Path Finder — Select nodes with JSONPath or XPath
  • Protobuf & Avro Decoder — Read protobuf wire bytes and Avro container files without their schema
  • Expression Evaluator — Reduce a JSONPath or XPath match to a single answer