SS Toolbox
SS Toolbox
يتم معالجة جميع البيانات محليًا

محوّل TOML إلى JSON لـ Cargo.toml وpyproject.toml وإعدادات Rust

اقرأ Cargo.toml أو pyproject.toml أو أي إعداد TOML بصيغة JSON، وأعد كتابة كائنات JSON كجداول TOML داخل المتصفح. يتعامل المحلّل مع التواريخ ومصفوفات الجداول والجداول المنقّطة؛ أما التعليقات وترتيب المفاتيح وnull فلا تُحفظ.

كيف يعمل محوّل TOML ↔ JSON هذا

  1. مخصص لملفات البيان

    الصق Cargo.toml أو pyproject.toml وافحص الجداول المتداخلة ومدخلات [[bin]] / [[bench]] ككائنات ومصفوفات JSON.

  2. مصفوفات الجداول تعمل في الاتجاهين

    تتحول كتل [[products]] إلى مصفوفات كائنات، وتُكتب مصفوفة JSON من كائنات متطابقة الشكل مرة أخرى ككتل [[table]]. المصفوفات المتداخلة تبقى سطرية.

  3. التواريخ والأوقات تُحلّل ككائنات Date

    تتحول تواريخ TOML وأوقاته إلى كائنات Date في JavaScript، لذا يظهر JSON نصوصًا بصيغة ISO مثل 1979-05-27T07:32:00.000Z. وعند التحويل العكسي يُكتب نص بين علامتي اقتباس، لا تاريخ TOML أصلي.

  4. إعادة بناء الجداول المتداخلة والمنقّطة

    يتحول [tool.poetry] و[a.b] إلى كائنات متداخلة. تُخرج المفاتيح العددية قبل الجداول الفرعية، لذا لا يُحفظ الترتيب الأصلي.

  5. تحويل محلي مع اختيار ملف

    اختر ملفات .toml / .json أو الصق النص ثم نزّل النتيجة. لا رفع ولا خيارات مسافات أو ترتيب.

أسئلة شائعة حول TOML ↔ JSON

هل يدعم JSON → TOML القيمة null؟

لا. لا يوجد نوع null في TOML، ويحذف المسلسل المفاتيح التي قيمتها null بصمت، بما فيها عناصر null داخل المصفوفات. احذف null أو استبدلها قبل التحويل، وإلا تختفي البيانات دون خطأ.

كيف تُعالج التواريخ والأوقات؟

يحلّل TOML → JSON التاريخ والوقت والتاريخ المحلي والوقت المحلي إلى كائنات Date ويظهر نصوص ISO: 1979-05-27T07:32:00.000Z و1979-05-27 و07:32:00.000. أما JSON → TOML فيعتبر هذه النصوص نصًا عاديًا ويضعها بين علامتي اقتباس، فلا تعود تواريخ TOML أصلية. لا يُكتب دون اقتباس إلا كائن Date حقيقي ناتج عن التحليل. الوقت المختصر مثل 07:32 يفشل بـ «Incomplete time»؛ الثواني مطلوبة.

هل تُحفظ التعليقات وترتيب المفاتيح؟

لا. تُحذف التعليقات والأسطر الفارغة عند التحليل ولا تُعاد. يتغير الترتيب أيضًا: المفاتيح العددية أولًا ثم الجداول الفرعية. المفاتيح المكررة تُرفض برسالة «Can't redefine existing key».

كيف تُعرض مصفوفات الجداول؟

تتحول كتل [[products]] إلى مصفوفات كائنات JSON. وفي الاتجاه العكسي تُكتب مصفوفة الكائنات ككتل [[products]]، وتبقى المصفوفات المتداخلة سطرية. يجب أن يكون جذر JSON كائنًا: جذر المصفوفة يفشل بـ «Can only stringify objects, not array».

لماذا تفشل مصفوفة JSON برسالة «Array values can't have mixed types»؟

يتطلب هذا المحلّل مصفوفات TOML متجانسة (قواعد TOML 0.5). مصفوفة تخلط أرقامًا ونصوصًا أو كائنات وقيمًا عددية ترفع خطأ. افصلها إلى مصفوفات منفصلة أو استخدم جدولًا.

وماذا عن الأعداد الكبيرة وNaN والقيم الفارغة؟

الأعداد الأكبر من 2^53 تفقد دقتها وتُكتب بفواصل سفلية، مثل 12_345_678_901_234_567_000. وتتحول NaN وInfinity إلى nan / inf. المصفوفة الفارغة تُكتب [ ]، والكائن الفارغ { }، ومفاتيح undefined تُتخطّى بصمت.

هل يُرفع ملفي وماذا يحدث عند الخطأ؟

كل شيء يعمل في المتصفح؛ لا تُرفع الملفات أبدًا. لا يوجد حد مُعد، لكن التحويل متزامن فقد يجمّد ملف بحجم عدة MB الصفحة. TOML غير الصالح يجعل الصندوق الأيسر أحمر ويظهر تنبيهًا، وJSON غير الصالح يجعل الأيمن أحمر. لا يُنتج أي اتجاه نتيجة جزئية.

الأدوات ذات الصلة
SponsorMindElixir