مقارنة JSON بنيويًا

قارن بنيتَي JSON واعرض الإضافات والحذف والتغييرات بمسارات واضحة، مع حفظ كتابة الأعداد دون تقريب.

المعالجة محلية دون رفع المدخلات أو حفظها تلقائيًا. حد كل مدخل 256 KiB بصيغة UTF-8، والمجموع 512 KiB؛ العمق 32، وعدد القيم 30000 لكل مدخل، والاختلافات 2000، والتقرير 1 MiB. تتوقف المقارنة بعد 5 ثوانٍ.

ترتيب مفاتيح الكائن لا يؤثر. تقارن المصفوفات حسب الفهرس دون اكتشاف النقل. تقارن الأرقام بكتابتها: 1 و1.0 و1e0 مختلفة، دون تقريب الأعداد الكبيرة. تفك سلاسل JSON للمقارنة دون تطبيع Unicode. تغيير نوع فرع أو إضافته أو حذفه يظهر صفًا واحدًا بكامل الفرع.

مدخلا المقارنة

طريقة الاستخدام

ألصق JSON السابق واللاحق في الحقلين ثم ابدأ المقارنة. راجع نوع التغيير ومساره ونص JSON قبل التغيير وبعده، وانتقل بين صفحات المعاينة عند الحاجة. انسخ التقرير كاملًا أو نزّله باسم json-diff.json باختيارك. تعديل المدخل يلغي النتيجة السابقة؛ لا يُستبدل نص المدخل بالتقرير.

مثال عملي

قبل: {"n":1,"a":[1,2]} وبعد: {"a":[2,1],"n":1.0}. تظهر ثلاثة تغييرات: /n من النص 1 إلى النص 1.0، و/a/0 من 1 إلى 2، و/a/1 من 2 إلى 1. اختلاف ترتيب المفتاحين وحده لا يضيف تغييرًا. المفتاح a/b~c يظهر في المسار /a~1b~0c.

حدود الدعم

ترتيب مفاتيح الكائن غير مؤثر، لكن المصفوفات تُقارن حسب الفهرس؛ لا استنتاج لنقل العناصر أو مطابقة مجموعات. الأعداد تُقارن بكتابتها الأصلية: 1 و1.0 و1e0 مختلفة، ولا تُحوّل إلى Number. تُفك سلاسل JSON للمقارنة دون تطبيع Unicode. إضافة فرع أو حذفه أو تغيير نوعه يظهر صفًا واحدًا بمحتواه الكامل. المسار الفارغ هو الجذر، وتُهرب ~ إلى ~0 و/ إلى ~1 في JSON Pointer. حقلا before وafter في التقرير نصوص تحمل JSON مدمجًا، وليسا قيمًا عددية مقربة؛ يُحذف الحقل عند غياب ذلك الجانب، أما قيمة JSON null فتُمثل بالنص "null". التقرير يصف الفروق وليس ملف JSON Patch لتنفيذ تعديلات. تجري المعالجة داخل المتصفح دون تنفيذ محتوى JSON أو رفعه أو حفظه أو نسخه تلقائيًا.

أسئلة شائعة

هل تعني نتيجة متساوية أن النصين متطابقان حرفيًا؟

لا؛ قد تختلف المسافات خارج السلاسل وترتيب مفاتيح الكائن وطريقة تهريب المحارف مع بقاء القيم متساوية حسب هذه السياسة. تظهر عندها قائمة changes فارغة، ويمكن نسخ التقرير أو تنزيله. في المقابل، اختلاف كتابة العدد أو ترتيب عناصر المصفوفة يعد فرقًا حتى لو بدا المعنى متقاربًا.

أدوات مرتبطة