حدود التحويل بين JSON ↔ YAML وXML
الزعم بأن JSON مجموعة فرعية من YAML يضمن اتجاهًا واحدًا فقط، ولا يوجد لـ XML أي تحويل JSON رسمي على الإطلاق — كل شيء يقوم على الاصطلاح.
التحويل بين JSON وYAML وXML وCSV وTypeScript وJava وGo وSQL ليس بلا خسارة أبدًا. المهم أن تكون صريحًا بشأن أين تحدث الخسارة.
8 مقالةالزعم بأن JSON مجموعة فرعية من YAML يضمن اتجاهًا واحدًا فقط، ولا يوجد لـ XML أي تحويل JSON رسمي على الإطلاق — كل شيء يقوم على الاصطلاح.
CSV ثنائي الأبعاد، وJSON شجري. الجزء الصعب في التحويل ليس الشيفرة — بل تحديد مسبق لكيفية تسطيح المصفوفات وكيف تُحفظ الأنواع.
البنى المتداخلة والحقول غير المتسقة ومصفوفات المصفوفات هي مواضع انكسار التحويل من JSON إلى جدول بيانات. أربع طرق مرتبة حسب زمن الوصول إلى النتيجة، لكل منها مقايضاتها.
يخفي التحويل من JSON إلى SQL INSERT تقسيم الجداول المتداخلة، والفرق بين NULL والحقل الغائب، والهروب، والفروق بين اللهجات. عبارات قابلة للتشغيل وجداول مقارنة لكل مزلق.
توليد interface من عينة JSON نصف المهمة: الحقول الاختيارية وnull والاتحادات والتواريخ والأعداد الكبيرة تحتاج مراجعة بشرية، والأنواع لا تقدم تحققًا في وقت التشغيل.
أكثر الأوامر تكرارًا في الشروحات، yq -P input.json > output.yaml، ما زال يُخرج JSON على yq v4. يقيس هذا المقال أداء yq v4.44.6 وPyYAML 6.0.3 وjs-yaml على عيّنة بحجم 2.39 MB، ويشرح لماذا يحدد امتداد الملف صيغة الإخراج، ثم يعطي الصيغ الصحيحة للتحويل الدفعي والاقتباس والمسافات البادئة ودقة الأعداد الصحيحة الكبيرة.
تسع تجارب على محوّل حقيقي: استراتيجية «مفاتيح السجل الأول» تفقد الحقول بصمت، وnull والغياب والسلسلة الفارغة تصبح جميعها خلايا فارغة، وعدد صحيح من 20 خانة يفقد دقته منذ JSON.parse، ونقطة داخل مفتاح تجعل مسارين مختلفين يتصادمان في العمود نفسه. كيف تُبنى الترويسة، وأي القيم تتشوه، وكيف تختار استراتيجية حسب الاستخدام اللاحق.
نظرة عملية على ما يصدره مولّد JSON-to-Java حقاً — الأرقام تصبح Double، والكائنات المتداخلة تصبح فئات داخلية static، ولا تُنتج أي تعليق Jackson توضيحي واحد. دقة المال، إعادة تسمية الحقول، محو الأنواع، الحقول المجهولة والتواريخ هي الأشياء الخمسة التي عليك إضافتها بنفسك، مع كود قابل للنسخ لكل واحدة.