Hype StackHypeStack

JSON diff that ignores key order.

Paste two versions of a payload, a config or an API response. You get a list of what actually changed, path by path.

  • Free
  • No signup
  • Runs in your browser
  • 2 added
  • 1 removed
  • 2 changed
  • ~

    $.plan

    "free" to "pro"

  • ~

    $.seats

    3 to 12

  • +

    $.owner.verified

    true

  • +

    $.features[1]

    "audit-log"

  • -

    $.legacyBilling

    true

Objects are matched by key, so key order never counts. Arrays are matched by position: inserting an item at the start shows every later item as changed.

How it works.

  1. 1

    Paste the original on the left and the changed version on the right, or open two files.

  2. 2

    Every difference is listed by its path, like $.owner.email, and marked as added, removed or changed.

  3. 3

    Switch to side by side to see both documents lined up, then copy or download the change list.

Why a text diff fails on JSON

Run git diff on two JSON files where only the key order changed and half the lines look different. Reformat one of them and every line does. The data is identical, the text isn't.

This tool parses both documents and compares the values. Objects are matched by key, so order and whitespace never show up as changes. What's left is the real difference.

Reading the result

Each change has a JSONPath. $.members[2].role is the role field of the third item in members. Added and removed entries show the value, changed entries show the old value and the new one.

Arrays are compared by position. That's right for ordered data like steps or rows, and noisy when an item is inserted at the start, because every item after it moves.

Questions, answered.

How do I compare two JSON files?

Paste one into each box above, or use Open file. The differences appear below as a list of paths, and the side by side view shows both documents lined up.

Does key order matter when comparing JSON?

Not for the data. The JSON standard treats objects as unordered, so {"a":1,"b":2} and {"b":2,"a":1} are equal. This diff ignores key order. A plain text diff doesn't.

How are arrays compared?

Item by item, by index. Adding an element at the end shows as one addition. Inserting one at the start shows every later item as changed, because each index now holds a different value.

Can I compare two API responses?

Yes, that's the main use. Paste the response from staging and from production, or from before and after a deploy, and you see exactly which fields changed.

More free tools.

All tools

Catch the breaking change before users do.

Add an endpoint that lists invoices and show them in the web app.. Add a settings page that saves to the API.. Let people sign in with Google.

Hype Stack shares the API's types with every app, so a renamed field breaks the build, not the screen. A free starter, six apps on one API.