محول JSON إلى TOML
الصق كائن JSON على اليمين، احصل على TOML على اليسار. التزام صارم بالمواصفات عبر @iarna/toml. بدون رفع.
- الصق كائن JSON في منطقة النص اليمنى.
- انقر «التحويل إلى TOML». يجب أن يكون المستوى الأعلى كائن JSON — لا مصفوفة.
- انسخ مخرج TOML أو نزّله.
- لقوائم السجلات، استخدم مصفوفة جداول TOML — غلِّف بـ `{ items: [...] }` أولًا.
ماذا تفعل؟
يحوّل كائن JSON إلى مستند متوافق مع TOML 1.0 عبر @iarna/toml. تصبح الكائنات المتداخلة رؤوس `[section]`؛ ومصفوفات الكائنات تصبح كتل مصفوفة-من-جداول `[[items]]`؛ والسلاسل والأرقام والقيم البولية وسلاسل التاريخ-الوقت ISO 8601 تُطابِق بدائيات TOML. يُرتَّب المخرج إلى ترتيب قانوني — تظهر المفاتيح قبل الجداول الفرعية للتوافق مع محلِّلات TOML الصارمة.
مثال
مدخل JSON:
{
"name": "Ada",
"active": true,
"address": {
"city": "London"
}
} مخرج TOML:
name = "Ada"
active = true
[address]
city = "London" مزالق شائعة من JSON إلى TOML
لـ TOML قواعد أصرم على المستوى الأعلى مقارنة بـ JSON. تشرح الأنماط أدناه لماذا قد تفشل قيمة JSON «يفترض أن تعمل».
- مصفوفة على المستوى الأعلى. لا يستطيع TOML تمثيل مصفوفة JSON على المستوى الأعلى. لُفّها: `{"items": [...]}`. النتيجة تصبح مصفوفة-من-جداول TOML تحت `[[items]]`.
- قيمة عددية على المستوى الأعلى. مستند JSON مجرد `42` أو `"hello"` ليس له مفتاح يرتبط به في TOML. لُفّه في كائن: `{"value": 42}`.
- قيم null. لا يحوي TOML نوع null. يحذف المسلسِل تمامًا المفاتيح التي قيمتها JSON null. إن احتجت تمثيل «لا شيء صراحةً»، فاستخدم سلسلة فارغة `""` أو قيمة دلالية بحسب الكود اللاحق.
- مصفوفات بأنواع مختلطة. يسمح TOML 1.0 بـ `[1, "two"]` لكن المحلِّلات القديمة 0.5 لا تسمح. إن كان TOML الخاص بك يجب أن يذهب ويعود عبر أدوات 0.5 فأبقِ المصفوفات متجانسة في JSON قبل التحويل.
- مفاتيح بنقاط في مخرج TOML. مفتاح JSON مثل `"my.key"` يصبح مسار «مفتاح منقَّط» في TOML، تفسره محلِّلات TOML على أنه متداخل. للحفاظ على نقطة حرفية في اسم المفتاح يقوم المسلسِل بإحاطته باقتباس: `"my.key" = ...` — لكن المستهلكين قد يحلّلونه كمسار رغم ذلك.
- NaN / Infinity. يدعم TOML 1.0 الحرفيات `nan` و `inf` و `-inf`. لا يمثّل JSON هذه القيم — تصل عادةً كسلاسل `"NaN"` و `"Infinity"` وغيرها. حوّل يدويًا إن احتجت قيم TOML العائمة الخاصة الحقيقية.
الأسئلة الشائعة
كيف تُمثَّل التواريخ؟
تواريخ JSON سلاسل ISO 8601، مثل `"2026-04-26T12:00:00Z"`. يحفظها المسلسِل كسلاسل في TOML — لا كأنواع تاريخ-وقت أصلية. للحصول على تاريخ-وقت TOML أصلي ستحتاج إلى المعالجة المسبقة وإصدار القيمة بعلامة النوع الصحيحة على جانب JavaScript.
هل تُسطَّح الكائنات المتداخلة بعمق؟
لا — تصبح رؤوسًا متداخلة `[a.b.c]`. كل مستوى تداخل يصبح مسار رأس مفصول بنقاط. للهياكل العميقة جدًا قد تكون أسطر الرؤوس طويلة؛ هذه هي الطريقة التي يُعبِّر بها TOML عن العمق.
هل يُحفَظ ترتيب المفاتيح؟
في الغالب. يقوم المسلسِل بتقييس الترتيب بحيث تأتي البدائيات قبل الجداول الفرعية (قاعدة TOML). داخل كل مستوى يُحفَظ ترتيب الإدراج في JSON.
كيف أحصل على جدول TOML سطري في المخرج؟
لا يمكنك — يستخدم المسلسِل دائمًا رؤوس كتل `[section]` وليس جداول سطرية. إن احتجت مخرجًا سطريًا فعالج النتيجة لاحقًا. الجداول السطرية ميزة قابلية القراءة في TOML وليست شكل بيانات مختلفًا.
هل يُرفَع JSON الخاص بي؟
لا. كل شيء يعمل في متصفحك — يُحلَّل مدخلك ويُسلسَل بـ JavaScript على هذه الصفحة ولا يُرسَل إلى أي خادم.
هل يمكنني الذهاب JSON → TOML → JSON والعودة؟
للأنواع المدعومة (سلسلة، رقم، بولين، كائن متداخل، مصفوفة كائنات)، نعم. تفقد الذهاب-والعودة قيم null (لا يوجد null في TOML) وقد تُقيِّس ترتيب المفاتيح.