كيفية مقارنة ملفي JSON
- الصق JSON الأصلي في الحقل الأول و JSON المعدّل في الحقل الثاني، أو اسحب ملفًا وأفلته في كل جانب.
- اطّلع على الملخص وقائمة الاختلافات: تظهر كل قيمة مضافة أو محذوفة أو معدّلة مع مسارها، مثل
$.users[2].email. - مرّر لأسفل إلى العرض جنبًا إلى جنب لرؤية التغييرات في سياقها. وحدّد خيار تجاهل ترتيب عناصر المصفوفة إذا كان ترتيب عناصر القوائم غير مهم.
مقارنة JSON دلالية بدلًا من مقارنة النصوص
تُبلغ مقارنة النصوص العادية عن تغيير كلما انتقل مفتاح من مكانه أو اختلفت المسافة البادئة أو كُتب رقم بطريقة مختلفة. أما مقارنة JSON هذه فتقارن البيانات نفسها:
- يُتجاهل ترتيب المفاتيح –
{"a":1,"b":2}يساوي{"b":2,"a":1}. - يُتجاهل التنسيق – لا تُحدث المسافات وفواصل الأسطر والمسافات البادئة أي فرق.
- تُقارن الأرقام حسب قيمتها –
1.0يساوي1. - تُحاذى المصفوفات – إدراج عنصر واحد لا يجعل كل العناصر التالية تبدو معدّلة، وتُطابق الكائنات المعدّلة مع أكثر نظيراتها شبهًا.
- تجاهل ترتيب عناصر المصفوفة – يقارن المصفوفات كمجموعات غير مرتبة، وهو مفيد لقوائم الوسوم أو المعرّفات أو الأذونات.
كيفية قراءة النتائج
| التسمية | المعنى | يشير المسار إلى |
|---|---|---|
| مضاف | القيمة موجودة في JSON المعدّل فقط | موضعها في JSON المعدّل |
| محذوف | القيمة موجودة في JSON الأصلي فقط | موضعها في JSON الأصلي |
| معدّل | المفتاح موجود في المستندين، لكن بقيمة أو نوع مختلف | موضعه في JSON المعدّل |
في العرض جنبًا إلى جنب يُنسَّق المستندان مع ترتيب المفاتيح بحيث تتقابل الأسطر المتطابقة؛ وتُطوى المقاطع الطويلة غير المتغيرة ما لم تُلغِ تحديد خيار إخفاء الأسطر غير المتغيرة.
الأسئلة الشائعة
هل يهم ترتيب المفاتيح؟
لا. كائنات JSON غير مرتبة بحكم تعريفها، لذا تتجاهل المقارنة ترتيب المفاتيح. أما المصفوفات فمرتبة، ما لم تحدد خيار «تجاهل ترتيب عناصر المصفوفة».
هل يمكنني مقارنة ملفات JSON كبيرة؟
نعم. تجري المقارنة في متصفحك وتعرض أول 200 اختلاف، مع زر لإظهارها جميعًا؛ ويعرض العرض جنبًا إلى جنب ما يصل إلى 5,000 سطر.
كيف أقارن JSON برمجيًا؟
في Python يختبر json.loads(a) == json.loads(b) التساوي. لا تحتوي JavaScript على مقارنة عميقة مدمجة؛ لكن مكتبات مثل Lodash توفر _.isEqual(a, b). وفي سطر الأوامر، يعرض diff <(jq -S . a.json) <(jq -S . b.json) الأسطر المختلفة.
هل تُرفع بياناتي إلى خادم؟
لا. يُقارن المستندان محليًا في متصفحك ولا يغادران جهازك أبدًا.