عندي ردّان JSON من المنصة نفسها بترتيب مفاتيح مختلف، كيف أقارن بينهما لأعرف ما الذي تغيّر فعلًا؟

نسّق الردين في منسّق JSON بالإزاحة نفسها مع تفعيل «ترتيب المفاتيح أبجديًا»، فتظهر المفاتيح في كل المستويات بترتيب ثابت واحد، ويبقى ترتيب عناصر المصفوفات كما هو. ثم الصق الناتجين في أداة مقارنة النصوص، فلا يظهر إلا الفرق الحقيقي في القيم أو البنية.

نُشر في · دقائق قراءة: 2

لماذا تفشل المقارنة المباشرة؟

في JSON ترتيب المفاتيح داخل الكائن لا يغيّر المعنى: {"a":1,"b":2} و{"b":2,"a":1} البيانات نفسها. لكن الأنظمة لا تلتزم بترتيب واحد دائمًا، فقد يعيد لك النظام نفسه الطلب مرة بترتيب ومرة بآخر. وأداة المقارنة تقارن السطور، فترى كل سطر في غير مكانه تغييرًا، وتغرقك بفروق لا وجود لها.

مثال: طلب قبل الشحن وبعده

الرد الأول، والطلب مدفوع:

{"status":"paid","id":55,"items":[{"sku":"B","qty":1},{"qty":2,"sku":"A"}]}

الرد الثاني بعد الشحن، بترتيب مفاتيح مختلف في كل المستويات:

{"id":55,"status":"shipped","items":[{"qty":1,"sku":"B"},{"sku":"A","qty":2}]}

بعد التنسيق بمسافتين مع ترتيب المفاتيح، يصبح كل منهما 14 سطرًا بالترتيب نفسه: id ثم items ثم status، وداخل كل عنصر qty ثم sku. الناتجان متطابقان سطرًا بسطر إلا سطرًا واحدًا: status من paid إلى shipped. هذا هو التغيير الحقيقي الوحيد.

لاحظ أن عنصري المصفوفة بقيا بترتيبهما، B أولًا ثم A، ولم يُرتّبا أبجديًا. ترتيب المفاتيح يخص مفاتيح الكائنات فقط، لأن ترتيب عناصر المصفوفة جزء من البيانات نفسها.

الخطوات

  1. افتح منسّق ومدقّق JSON والصق الرد الأول.
  2. اختر «تنسيق» بمسافتين، وفعّل «ترتيب المفاتيح أبجديًا»، وانسخ الناتج.
  3. امسح المدخلات والصق الرد الثاني بالإعدادات نفسها تمامًا، وانسخ الناتج.
  4. افتح مقارنة النصوص والصق الناتجين في الخانتين، وقارن على مستوى السطور.
  5. اقرأ السطور المعلّمة: هي الفروق الحقيقية في القيم أو في وجود المفاتيح.

أخطاء تفسد المقارنة

  • إزاحة مختلفة للنصين: مسافتان لأحدهما وأربع للآخر تجعل كل السطور مختلفة. استخدم الإعداد نفسه.
  • نسيان ترتيب المفاتيح في أحد النصين.
  • مصفوفة تغير ترتيب عناصرها فعلًا: هذا فرق حقيقي في البيانات، وستراه المقارنة، والأداة لن تخفيه لأنها لا ترتب المصفوفات.
  • مفتاح مكرر في أحد الردين: تبقى القيمة الأخيرة فقط بعد التنسيق، والأداة تعرض تحذيرًا بالمفاتيح المكررة. انتبه له قبل أن تعتمد على المقارنة.

وبدل النسخ من خانة الناتج يمكنك تنزيل كل ناتج ملفًا والاحتفاظ به، إن أردت مقارنة لاحقة بين ردود أكثر.

أسئلة شائعة

على أي أساس تُرتّب المفاتيح؟

بترتيب رموز الحروف، فالأحرف الكبيرة قبل الصغيرة، والمفاتيح العربية بعد اللاتينية. المهم أن الترتيب ثابت في الردين.

هل يغيّر الترتيب البيانات؟

لا. البيانات نفسها بترتيب مفاتيح مختلف فقط، وعناصر المصفوفات لا تُمس.

هل أستطيع المقارنة داخل الأداة نفسها؟

لا، المنسّق لا يقارن. هو يجهز النصين، والمقارنة في أداة مقارنة النصوص.