مقارنة
BSON أم JSON
BSON تنسيق مستندات ثنائي مسبوق بالطول، ببنية تشبه JSON وأنواع إضافية مثل التاريخ والبيانات الثنائية وObjectId. أما JSON فهو تنسيق نصي وفق RFC 8259، يمتاز بسهولة القراءة وتوافر الأدوات.
أي تنسيق يجب أن تختار؟
فكّر في BSON للمستندات المتوافقة مع MongoDB ولأنواع التاريخ والبيانات الثنائية والمعرّفات الصريحة. وغالباً ما يكون JSON أسهل للفحص البشري وواجهات الويب والإعدادات النصية.
مناسب لـ تنسيق BSON
تسلسل مستندات MongoDB · تبادل المستندات بين الأدوات المتوافقة مع BSON
- الحفاظ على أنواع مثل التواريخ والبيانات الثنائية
- استخدام برامج تشغيل وأدوات تقرأ BSON وتكتبه
مناسب لـ JSON
واجهات ويب API وملفات الإعداد وتبادل البيانات
- نقل البيانات المنظمة
المعلومات الأساسية
| البند | تنسيق BSON | JSON |
|---|---|---|
| الامتداد | .bson | .json |
| نوع MIME | application/bson | application/json |
| الاستخدامات الشائعة | تسلسل مستندات MongoDB · تبادل المستندات بين الأدوات المتوافقة مع BSON | واجهات ويب API وملفات الإعداد وتبادل البيانات |
| طريقة الفتح | اقرأه باستخدام mongorestore أو أداة أو مكتبة تدعم BSON. لفحص المحتوى، حوّله إلى Extended JSON أو تمثيل آخر مقروء. لا تحرر الملف الثنائي في محرر نصوص. | افتحه في محرر نصوص أو IDE أو عارض يدعم JSON. |
| التصدير أو التحويل | عند التحويل إلى JSON، قد تحتاج التواريخ وObjectId والقيم الثنائية إلى صيغة Extended JSON أو تمثيل خاص بالتطبيق، لأن JSON القياسي لا يملك أنواعاً مقابلة. إذا احتجت إلى التحويل ذهاباً وإياباً، اختر طريقة تحفظ معلومات الأنواع واختبر بيانات فعلية. | يمكن للتطبيقات أو أدوات التحويل تحويله إلى تنسيقات مثل CSV. |
الاختيار حسب الاستخدام
الحفاظ على أنواع مثل التواريخ والبيانات الثنائية
تسلسل مستندات MongoDB · تبادل المستندات بين الأدوات المتوافقة مع BSON
تنسيق BSONاستخدام برامج تشغيل وأدوات تقرأ BSON وتكتبه
تسلسل مستندات MongoDB · تبادل المستندات بين الأدوات المتوافقة مع BSON
تنسيق BSONنقل البيانات المنظمة
واجهات ويب API وملفات الإعداد وتبادل البيانات
JSONنقطة أساسية 1
يخزن BSON أطوال المستندات وأنواع العناصر ثنائياً، بما في ذلك التاريخ والبيانات الثنائية وObjectId. JSON نصي ولا يعرّف نوعاً أساسياً مخصصاً للتاريخ أو البايتات.
مزيد من التفاصيل حول الاختلافاتنقطة أساسية 2
يميز BSON بين int32 وint64 وdouble. لا تحمل أرقام JSON هذه العلامات، لذلك قد تختلف معالجة النطاق والدقة بين بيئات التشغيل.
مزيد من التفاصيل حول الاختلافاتمزيد من التفاصيل حول الاختلافات
استخدم BSON عندما تتوقع قاعدة البيانات أو البروتوكول أنواع BSON وتأطير المستندات. استخدم JSON عندما تكون قابلية التبادل النصي والفحص مهمة. حدد تحويل القيم الخاصة واختبر برامج التشغيل والمستهلكين الفعليين.
- BSON ليس مجرد JSON محول إلى ثنائي؛ فمواصفته تعرف تمثيلاً لمستندات ذات أنواع وأطوال صريحة وقيم خاصة بـBSON.
- قد يفقد التحويل إلى JSON هوية ObjectId ودقة التاريخ أو افتراضاته الزمنية ونوع البيانات الثنائية وسلوك Decimal128 ودقة الأعداد الصحيحة أو معنى المفاتيح المكررة.
- تحقق من نطاق الأرقام وترتيب المصفوفات والمستندات المضمنة وnull والحقول المفقودة وترميز البيانات الثنائية واصطلاحات أي تمثيل JSON موسع.
الأسئلة الشائعة
هل يستطيع JSON القياسي تمثيل كل قيمة BSON مباشرة؟
لا. لا يملك JSON أنواعاً أصلية لـObjectId أو التاريخ أو سلاسل البايتات العامة. تستخدم التطبيقات اصطلاحات أو Extended JSON يجب أن يتفق عليها الطرفان.