JSON ليس الصيغة الوحيدة للبيانات المهيكلة — YAML وCSV وXML وTOML نشأت كل واحدة في بيئة مختلفة، والتحويل بينها حاجة عملية متكررة، خصوصًا عند ربط أنظمة قديمة قائمة على XML بواجهات JSON حديثة.
ما الغرض من كل صيغة
- YAML — يعتمد على المسافات البادئة بدل الأقواس، وهو المعيار الشائع في ملفات CI/CD وKubernetes وDocker Compose.
- CSV — صيغة مسطّحة جدولية، الخيار الأبسط لجداول البيانات وأدوات التحليل.
- XML — أقدم، يدعم السمات (attributes) والمساحات الاسمية، وما زال أساس خدمات SOAP وأنظمة كثيرة في القطاعين الحكومي والمصرفي بالمنطقة العربية.
- TOML — مصمم ليكون واضحًا وسهل التحرير يدويًا، اشتهر عبر ملف
Cargo.tomlفي Rust.
ما الذي قد يُفقد أثناء التحويل
ليست كل التحويلات متكافئة. التحويل من JSON إلى CSV يفقد التداخل: الكائنات العميقة والمصفوفات متغيرة الطول لا تتناسب مع جدول مستطيل، لذا يجب تسطيحها أو تبسيطها أولًا. أما التحويل بين JSON وYAML أو JSON وTOML فيكاد يكون دائمًا بلا فقدان، لأن كلتا الصيغتين تدعمان البنية المتداخلة بنفس طريقة JSON.
فخّ التخمين التلقائي للنوع في YAML
محلّل YAML يحاول تخمين نوع القيمة غير المحاطة بعلامات اقتباس: فالقيمة version: 1.20 قد تتحول إلى الرقم 1.2 فاقدةً الصفر الأخير، والنص NO قد يتحول إلى القيمة المنطقية false وفق قواعد YAML 1.1 التي تعامل yes/no كقيم منطقية. لذلك يجب وضع القيم النصية التي يجب أن تبقى نصًا بين علامات اقتباس قبل التحويل إلى JSON.
لماذا نحتاج هذا التحويل
- نقل إعدادات من أداة تتوقع YAML إلى أخرى تتوقع JSON، أو العكس.
- تصدير بيانات من واجهة برمجية إلى CSV لمراجعتها سريعًا في جدول بيانات.
- ربط نظام قديم يعتمد على XML/SOAP بواجهة برمجية حديثة قائمة على JSON.