JSON Compare / Diff + Patch

ប្រៀបធៀបឯកសារ JSON ពីរដោយសារសំខាន់ក្នុង browser របស់អ្នក ហើយបម្លែង diff ទៅជាប៉ះ patch។

មិនមានការផ្ទុកឡើង និងមិនមាន round-trip ទៅ server។ កាត់បន្ថយសម្លេងរំខានដោយរបៀបប្រៀបធៀបអារេ, ច្បាប់ path និង tolerance តម្លៃលេខ។

ដំណើរការតែតាម browser ប៉ុណ្ណោះ ដោយមិនផ្ទុកទៅ server
របៀបប្រៀបធៀបអារេជួយកាត់បន្ថយសម្លេងរំខានក្នុងការពិនិត្យ
នាំចេញ JSON Patch និង JSON Merge Patch
អ្វីៗទាំងអស់ស្ថិតនៅក្នុង session browser របស់អ្នក។ មិនមានការផ្ទុកឡើងឡើយ។

លំហូរការងារដែលបានណែនាំ

  1. សម្អាត ឬតម្រៀប JSON ជាមុនដោយ JSON Formatter ឬ JSON Key Sorter ពេលអ្នកចង់ឲ្យ input ស្របគ្នា។
  2. បិទភ្ជាប់ ឬផ្ទុកឯកសារ JSON ខាងឆ្វេង និងខាងស្ដាំ បន្ទាប់មកដំណើរការ Compare។
  3. ជ្រើសរបៀបអារេ, match keys, tolerance, និង path rules ដែលសមនឹងការពិនិត្យ។
  4. ពិនិត្យសង្ខេប, path ដែលបានផ្លាស់ប្ដូរ, រចនាសម្ព័ន្ធ, និង output patch ដែលអាចនាំចេញបាន។

Sample

គំរូនេះបង្ហាញរបៀបដែលអារេត្រូវបានរៀបចំឡើងវិញ ការផ្លាស់ប្ដូរ timestamp ភាពខុសគ្នាចំនួនតូច និងធាតុបន្ថែមមួយ អាចត្រូវបានកាត់បន្ថយដោយ match keys, tolerance និង path rules។

Before

Input
{
  "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
  }
}

After

Input
{
  "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 ភាពខុសគ្នាចំនួនតូច និងធាតុបន្ថែមមួយ អាចត្រូវបានកាត់បន្ថយដោយ match keys, tolerance និង path rules។

របៀបប្រៀបធៀប

  1. បិទភ្ជាប់ ឬផ្ទុកឯកសារ JSON ខាងឆ្វេង និងខាងស្ដាំ។
  2. ជ្រើស strict, ignore order, multiset, ឬ match by key(s) ហើយបន្ថែម path rules តាមតម្រូវការ។
  3. ដំណើរការ Compare ឬប្រើ shortcut។ ផ្ទៀងផ្ទាត់មុន ប្រសិនបើអ្នកគ្រាន់តែចង់ពិនិត្យការផ្ទុក។
  4. ចម្លង ឬទាញយក path ដែលបានផ្លាស់ប្ដូរ patch, merge patch, ឬរបាយការណ៍ ពេលបញ្ចប់។

អ្វីដែលអ្នកអាចធ្វើបាន

  • ប្រៀបធៀប JSON តាមសារសំខាន់ មិនមែនតាមបន្ទាត់ទេ។
  • ផ្គូផ្គងធាតុអារេតាម key ដូចជា id, sku, ឬ code។
  • មិនអើពើ path, ជ្រើស path, ឬអនុវត្តច្បាប់ប្រៀបធៀបតាម path ដោយឡែកៗ។
  • ប្រើ tolerance តម្លៃលេខ ដើម្បីបន្ថយភាពខុសគ្នាចំនួនតូចៗ។
  • នាំចេញ JSON Patch, JSON Merge Patch, path ដែលបានផ្លាស់ប្ដូរ និងរបាយការណ៍ Markdown។
  • បង្រួម node ដែលមិនផ្លាស់ប្ដូរ ហើយលោតទៅកាន់ path ដែលពាក់ព័ន្ធដោយផ្ទាល់។

ច្បាប់ប្រៀបធៀប និងលទ្ធផល

  • ការដំណើរការទាំងស្រុងក្នុង browser។ មិនមានការផ្ទុកឡើង។
  • គាំទ្ររបៀបអារេ strict, ignore-order, multiset, និង match-by-key។
  • Path rules គាំទ្រ ignore, strict, ignore-order, multiset, match-keys, និង tolerance។
  • Tolerance តម្លៃលេខអនុវត្តតែលើលេខប៉ុណ្ណោះ។
  • អាចលុប comments មុន parse ពេលចាំបាច់។
  • Input ធំប្រើការបង្ហាញ summary-first ហើយអាចបិទ auto-compare។

សំណួរញឹកញាប់

អាចប្រៀបធៀបអារេវត្ថុតាម key បានទេ?

បាន។ ប្រើ Match by key(s) ហើយបញ្ជាក់ key ដូចជា id ឬ sku។ អ្នកក៏អាចកំណត់ច្បាប់តាម path ដោយឡែកបានដែរ។

ខ្ញុំលុប timestamp ឬ request ID ដូចម្តេច?

បន្ថែមវាទៅ Ignore paths ឬប្រើ path rule នៅពេលអ្នកចង់ឲ្យការលើកលែងអនុវត្តតែក្នុង subtree មួយ។

អាចរក្សាលំដាប់អារេខ្លះ ហើយមិនអើពើលំដាប់នៅផ្នែកផ្សេងទេ?

បាន។ ប្រើ path rule ដើម្បីកំណត់ ignore-order, multiset, ឬ match-keys តែត្រង់ផ្នែកដែលអ្នកត្រូវការ។

វាគាំទ្រ JSON ដែលមាន comment ទេ?

JSON ស្តង់ដារមិនអនុញ្ញាត comment ទេ។ បើក Strip comments before parse តែពេលអ្នកត្រូវទទួល JSONC-style input ប៉ុណ្ណោះ។

មានការផ្ទុកឡើងទៅ server ទេ?

ទេ។ ការប្រៀបធៀប ការសម្អាតទ្រង់ទ្រាយ និងការនាំចេញ ទាំងអស់ធ្វើក្នុង browser របស់អ្នក។

ខ្ញុំអាចនាំចេញអ្វីបានខ្លះ?

JSON Patch, JSON Merge Patch, path ដែលបានផ្លាស់ប្ដូរ និងរបាយការណ៍ Markdown។