لماذا تهم مقارنة JSON
حين تتغير استجابة API بين الإصدارات، أو ينجرف ملف إعدادات عن خطه الأساسي، أو تُنتج عملية ترحيل بيانات مخرجات غير متوقعة — تحتاج إلى معرفة الحقول المُضافة والمحذوفة والمُعدَّلة بدقة. الفحص البصري لكتلتَي JSON أمر عرضة للخطأ في أي مستند غير بسيط.
المقارنة البنيوية تتجاوز المقارنة النصية السطرية. تُدرك دلالات JSON: كائنان بالمفاتيح ذاتها بترتيبات مختلفة يُعتبران متكافئَين؛ عنصر مصفوفة يغير موضعه يُعلَّم كنقل لا كحذف وإدراج.
يُعدّ مقارن JSON لا غنى عنه في سير عمل تطوير API. حين يُطلق مزود API طرف ثالث تغييراً كاسراً، تكشف مقارنة استجابة محفوظة قبل التغيير بأخرى بعده كل حقل متأثر دفعةً واحدة.
فهم مخرجات المقارنة
الحقول المُضافة مُبرَّزة باللون الأخضر. الحقول المحذوفة مُبرَّزة باللون الأحمر. الحقول المُعدَّلة تعرض القيمة القديمة باللون الأحمر والقيمة الجديدة باللون الأخضر على سطرين متجاورين.
الحقول غير المُتغيِّرة تُعرض بلونها الطبيعي بشفافية مخفّضة. يمكنك إخفاؤها بالكامل بزر "إظهار التغييرات فقط"، ما يُقلّل ضوضاء المشهد البصري في المستندات العميقة.
تُقارَن المصفوفات باستخدام خوارزمية أطول تسلسل مشترك لمطابقة العناصر بذكاء. يمكن تصدير نتيجة المقارنة كمستند JSON Patch (RFC 6902).
تجاهل المفاتيح والتطبيع قبل المقارنة
بعض الحقول متوقع تغييرها ولا ينبغي أن تُلوّث نتيجة المقارنة — الطوابع الزمنية ومعرّفات الطلبات ورموز الجلسات. يتيح خيار "تجاهل المفاتيح" تحديد قائمة بأسماء المفاتيح لاستثنائها.
قبل المقارنة يمكن تطبيق خطوات تطبيع: ترتيب مفاتيح الكائنات أبجدياً، وتقليم المسافات البيضاء من قيم السلاسل، وتوحيد تمثيلات الأعداد.
يمكن تصدير نتيجة المقارنة كمستند JSON Patch (RFC 6902) — قائمة مقروءة آلياً من العمليات (إضافة وحذف واستبدال) التي تُحوّل المستند الأيسر إلى الأيمن.