مقارنة JSON
قارن بين كائنَي JSON جنباً إلى جنب. تنسيق تلقائي، ترتيب المفاتيح، وتمييز الاختلافات.
طريقة الاستخدام
- Paste your first JSON into the left panel
- Paste your second JSON into the right panel
- Click Compare — both sides are auto-formatted and sorted
- Differences are highlighted: red for removed lines, green for added lines
الأسئلة الشائعة
-
Does key order matter?
No. Both JSON objects are sorted by keys before comparing, so differences in key order are ignored.
-
Can I compare nested objects?
Yes. The diff works on the formatted text after sorting, so nested structures are fully compared.
-
What do the colors mean?
Red lines exist only in the left (original) input. Green lines exist only in the right (modified) input. Unchanged lines have no highlight.
-
Is my data sent to a server?
No. All processing happens entirely in your browser.
لماذا لا تكفي المقارنة النصية لـ JSON؟
حين تريد معرفة الفرق بين ملفَّي JSON، قد يخطر على بالك أن تنسخهما في أداة مقارنة نصية عادية مثل diff. لكن هذا النهج يُخفق في حالات شائعة جدًا.
مشكلة ترتيب المفاتيح
JSON الكائن {"b": 2, "a": 1} و{"a": 1, "b": 2} متطابقان دلاليًا — كلاهما يمثّل نفس البيانات. لكن أداة المقارنة النصية ستعتبرهما مختلفَين تمامًا. المقارنة الصحيحة لـ JSON يجب أن تُرتّب المفاتيح أولًا قبل المقارنة.
مشكلة التنسيق المختلف
ملف JSON مُجمَّل بمسافة بادئة من 2 وآخر بمسافة بادئة من 4 سيبدوان مختلفَين بالكامل في مقارنة نصية، رغم أنهما يحملان نفس البيانات. أداة JSON Diff تُطبّع التنسيق أولًا ثم تُقارن.
مشكلة المسافات الزائدة
أي مسافة أو سطر فارغ زائد سيُظهره المقارن النصي كاختلاف، وهو اختلاف غير ذي معنى من منظور البيانات.
حالات استخدام مقارنة JSON في بيئات العمل الحقيقية
مراجعة تغييرات الـ API
حين تُحدَّث واجهة API أو تتغير مخرجاتها، مقارنة استجابتَي نسختَين من API تُظهر ما تغيّر بدقة:
- حقول أُضيفت؟
- حقول حُذفت؟
- قيم تغيّرت؟
- تغيّرت أنواع البيانات؟
هذا ضروري في اختبارات الانحدار (Regression Testing) وعند توثيق تغييرات API للفرق المستخدِمة.
تتبع تغييرات الإعداد
ملفات الإعداد بصيغة JSON (مثل package.json أو ملفات إعداد التطبيق) تتغير مع الوقت. مقارنة النسخ القديمة والجديدة تُحدد بدقة:
- حزم أُضيفت أو حُذفت من التبعيات
- تغييرات في إصدارات الحزم
- خيارات إعداد جديدة أو مُحذوفة
تصحيح أخطاء قواعد البيانات
عند تصحيح أخطاء في تطبيق يخزن بيانات JSON في قاعدة البيانات، مقارنة وثيقتين متوقع أن تكونا متطابقتين يكشف الاختلافات الخفية التي تُسبب السلوك غير المتوقع.
فحص بيانات الإنتاج مقابل بيئة الاختبار
قد يختلف سلوك التطبيق بين بيئات التشغيل المختلفة بسبب اختلاف بيانات الإعداد. مقارنة JSON Diff تُحدد سريعًا ما إذا كانت ملفات الإعداد في الإنتاج تختلف عن الاختبار.
الفرق بين مقارنة بنية البيانات ومقارنة النص
مقارنة JSON الحقيقية تعمل على مستوى البيانات وليس النص. هذا يعني:
1و1.0قد يُعامَلان كقيمة واحدة (مسألة خلافية)nullوundefined(إن وُجدت) مختلفتان"true"(نص) وtrue(Boolean) مختلفتان تمامًا- المصفوفات
[1, 2, 3]و[3, 2, 1]مختلفتان (ترتيب المصفوفة مهم)
أفضل الممارسات عند مراجعة اختلافات JSON
- ابدأ بالاختلافات الهيكلية (حقول مُضافة أو محذوفة) قبل قيم متغيّرة.
- انتبه لتغييرات الأنواع:
"5"إلى5تغيير من String إلى Number قد يُكسر الكود الذي يتوقع نصًا. - فكّر في المعنى لا الشكل: اختلاف التنسيق بلا تغيير في البيانات لا يستحق وقتك.
- وثّق الاختلافات المقصودة في رسائل الـ commit لتيسير المراجعة مستقبلًا.