JSON համեմատում / diff + patch

Համեմատեք երկու JSON փաստաթուղթ իմաստային կերպով ձեր դիտարկչում եւ տարբերությունը վերածեք patch-ի։

Առանց վերբեռնման եւ սերվերի հետ շրջադարձի։ Նվազեցրեք աղմուկը զանգվածներին հարմար համեմատման ռեժիմներով, path կանոններով եւ թվային tolerance-ով։

Մշակում միայն դիտարկչում՝ առանց սերվեր վերբեռնման
Զանգվածներին հարմար ռեժիմները նվազեցնում են վերանայման աղմուկը
Արտահանել JSON Patch եւ JSON Merge Patch
Ամեն ինչ մնում է ձեր դիտարկչի session-ում։ Ոչինչ չի վերբեռնվում։

Առաջարկվող աշխատանքային հոսք

  1. Եթե ցանկանում եք համահունչ մուտք, նախ մաքրեք կամ դասավորեք JSON-ը JSON Formatter-ով կամ JSON Key Sorter-ով։
  2. Փակցրեք կամ վերբեռնեք ձախ եւ աջ JSON փաստաթղթերը, ապա գործարկեք Compare-ը։
  3. Ընտրեք վերանայմանը համապատասխան զանգվածի ռեժիմը, match keys-երը, tolerance-ը եւ path կանոնները։
  4. Վերանայեք ամփոփումը, փոփոխված path-երը, ծառը եւ արտահանվող patch արդյունքը։

Նմուշ

Այս նմուշը ցույց է տալիս, թե ինչպես կարելի է վերադասավորված զանգվածները, timestamp փոփոխությունները, փոքր floating-point տարբերությունները եւ մեկ ավելացված տարրը նեղացնել match keys-երի, tolerance-ի եւ path կանոնների միջոցով։

Մինչեւ

Մուտք
{
  "orderId": "A-1001",
  "updatedAt": "2026-04-16T08:00:00Z",
  "customer": {
    "name": "Acme Corp",
    "tags": ["vip", "beta"]
  },
  "items": [
    {
      "sku": "A-1",
      "qty": 2,
      "price": 10
    },
    {
      "sku": "B-2",
      "qty": 1,
      "price": 4.5
    }
  ],
  "summary": {
    "currency": "USD",
    "total": 24.5
  }
}

Հետո

Մուտք
{
  "orderId": "A-1001",
  "updatedAt": "2026-04-16T08:05:00Z",
  "customer": {
    "name": "Acme Corporation",
    "tags": ["beta", "vip"]
  },
  "items": [
    {
      "sku": "B-2",
      "qty": 1,
      "price": 4.5
    },
    {
      "sku": "A-1",
      "qty": 2,
      "price": 10.0001
    },
    {
      "sku": "C-3",
      "qty": 1,
      "price": 7
    }
  ],
  "summary": {
    "currency": "USD",
    "total": 24.5001
  }
}

Ինչ է ցուցադրում նմուշը

Այս նմուշը ցույց է տալիս, թե ինչպես կարելի է վերադասավորված զանգվածները, timestamp փոփոխությունները, փոքր floating-point տարբերությունները եւ մեկ ավելացված տարրը նեղացնել match keys-երի, tolerance-ի եւ path կանոնների միջոցով։

Ինչպես համեմատել

  1. Փակցրեք կամ վերբեռնեք ձախ եւ աջ JSON փաստաթղթերը։
  2. Ընտրեք strict, ignore order, multiset կամ match by key(s), ապա ավելացրեք անհրաժեշտ path կանոնները։
  3. Գործարկեք Compare-ը կամ օգտագործեք shortcut-ը։ Եթե միայն parse-ն եք ստուգում, նախ վավերացրեք։
  4. Ավարտելուց հետո պատճենեք կամ ներբեռնեք փոփոխված path-երը, patch-ը, merge patch-ը կամ հաշվետվությունը։

Ինչ կարող եք անել

  • Համեմատեք JSON-ը իմաստային կերպով, ոչ թե տող առ տող։
  • Համապատասխանեցրեք զանգվածի տարրերը բանալիով, օրինակ՝ id, sku կամ code։
  • Անտեսեք path-երը, ընտրեք path-երը կամ կիրառեք per-path համեմատման կանոններ։
  • Օգտագործեք թվային tolerance՝ փոքր floating-point տարբերությունները հարթելու համար։
  • Արտահանեք JSON Patch, JSON Merge Patch, փոփոխված path-երը եւ Markdown հաշվետվություն։
  • Ծալեք անփոփոխ հանգույցները եւ անմիջապես անցեք համապատասխան path-ին։

Համեմատման կանոններ եւ արդյունք

  • Մշակումն ամբողջությամբ աշխատում է դիտարկչում։ Ոչինչ չի վերբեռնվում։
  • Աջակցվում են strict, ignore-order, multiset եւ match-by-key զանգվածային ռեժիմները։
  • Path կանոններն աջակցում են ignore, strict, ignore-order, multiset, match-keys եւ tolerance։
  • Թվային tolerance-ը կիրառվում է միայն թվերի վրա։
  • Անհրաժեշտության դեպքում մեկնաբանությունները կարող են հեռացվել parse-ից առաջ։
  • Մեծ մուտքերը օգտագործում են նախ ամփոփման ցուցադրում եւ կարող են անջատել ավտոմատ համեմատումը։

ՀՏՀ

Կարո՞ղ եմ օբյեկտների զանգվածները համեմատել ըստ բանալիի։

Այո։ Օգտագործեք «Համապատասխանեցնել բանալիով» եւ նշեք բանալիներ, օրինակ՝ id կամ sku։ Կարող եք նաեւ կանոնը վերագրել առանձին path-ի համար։

Ինչպե՞ս անտեսել timestamp-երը կամ request ID-ները։

Ավելացրեք դրանք անտեսվող path-երի մեջ կամ օգտագործեք path կանոն, եթե բացառությունը պետք է կիրառվի միայն մեկ ենթածառի համար։

Կարո՞ղ եմ որոշ մասերի համար պահել զանգվածի հերթականությունը, իսկ մյուսների համար անտեսել այն։

Այո։ Օգտագործեք path կանոններ՝ ignore-order, multiset կամ match-keys-ը սահմանելու միայն այնտեղ, որտեղ դրանք անհրաժեշտ են։

Արդյո՞ք աջակցում է մեկնաբանություններով JSON-ին։

Ստանդարտ JSON-ը մեկնաբանություններ չի թույլատրում։ Միացրեք մեկնաբանությունների հեռացումը parse-ից առաջ միայն այն դեպքում, երբ պետք է ընդունել JSONC ոճի մուտք։

Արդյո՞ք ինչ-որ բան վերբեռնվում է սերվեր։

Ոչ։ Համեմատումը, նորմալացումը եւ արտահանումը ամբողջությամբ կատարվում են ձեր դիտարկչում տեղային կերպով։

Ի՞նչ կարող եմ արտահանել։

JSON Patch, JSON Merge Patch, փոփոխված path-եր եւ Markdown հաշվետվություն։