محول TOML إلى JSON
الصق TOML على اليمين، احصل على JSON على اليسار. الجداول تصبح كائنات، مصفوفات الجداول تصبح مصفوفات. بدون رفع.
- الصق TOML في منطقة النص اليمنى.
- انقر «التحويل إلى JSON». المخرج كائن JSON يحفظ تداخل الجداول.
- انسخ النتيجة أو نزّلها كـ data.json.
- تتحول قيم التاريخ-الوقت إلى سلاسل ISO 8601؛ وتُزال الشرطات السفلية في الأرقام.
ماذا تفعل؟
يحلل مستند TOML 1.0 إلى كائن JSON. تصبح جداول `[section]` كائنات متداخلة؛ ومصفوفات الجداول `[[items]]` تصبح مصفوفات JSON. السلاسل والأعداد الصحيحة (بما في ذلك الحرفيات السداسية/الثمانية/الثنائية وشرطات تجميع الأرقام) والأعداد العشرية والبولينات والتواريخ والتواريخ-الأوقات والأوقات تتطابق مع تمثيلات JSON المكافئة. الجداول والمصفوفات السطرية تُسطَّح بنفس الطريقة.
مثال
مدخل TOML:
name = "Ada"
active = true
[address]
city = "London" مخرج JSON:
{
"name": "Ada",
"active": true,
"address": {
"city": "London"
}
} أخطاء TOML الشائعة وكيفية إصلاحها
TOML أكثر صرامة من YAML أو JSON في بعض المواضع. تغطي الأنماط أدناه معظم حالات فشل المحلِّل.
- سلاسل بدون اقتباس. `name = Ada` غير صالح — تُفسَّر القيم العارية كمفاتيح/بوليان/أرقام لا كسلاسل. استخدم علامات اقتباس مزدوجة: `name = "Ada"`.
- مصفوفات بأنواع مختلطة (TOML 0.x). منع TOML 0.5 الأنواع المختلطة في المصفوفات؛ ويسمح TOML 1.0 بها. @iarna/toml يتبع 1.0، لذا `[1, "two"]` صالح هنا. إن كان TOML الخاص بك يجب أن يذهب ويعود عبر أدوات 0.5، فأبقِ المصفوفات متجانسة.
- إعادة تعريف جدول. تعريف `[a]` مرتين خطأ. يجب ألا يظهر كل رأس جدول إلا مرة واحدة كحد أقصى. ادمج المفاتيح في كتلة `[a]` واحدة.
- تاريخ-وقت بدون منطقة زمنية. `d = 2026-04-26T12:00:00` (دون Z أو إزاحة) هو «تاريخ-وقت محلي» — يُحلَّل، لكن JSON ليس لديه مفهوم محلية. المخرج هو نفس السلسلة بوقت ساعة الحائط، وليس لحظة UTC. أضف `Z` للحصول على UTC: `d = 2026-04-26T12:00:00Z`.
- لبس تهريب الاقتباس الثلاثي. تستخدم سلاسل TOML الأساسية متعددة الأسطر `"""..."""` وتعالج التهريب؛ بينما تستخدم السلاسل الحرفية متعددة الأسطر `\'\'\'...\'\'\'` ولا تعالجه. خلط قواعد التهريب هو الخطأ الأكثر شيوعًا في السلاسل متعددة الأسطر.
- توسيع جدول سطري. الجدول السطري `point = {x=1, y=2}` مغلق ومكتفٍ بذاته — لا يمكنك لاحقًا كتابة `[point.z]` أو `point.z = 3`. للتوسعة استخدم صياغة الكتلة المعيارية `[point]` بدلًا من ذلك.
الأسئلة الشائعة
كيف تُمثَّل التواريخ-الأوقات في JSON؟
لا يحوي JSON نوعًا أصليًا للتاريخ-الوقت، فتصبح القيم سلاسل ISO 8601. التواريخ-الأوقات بالإزاحة (`2026-04-26T12:00:00Z`) والمحلية (`2026-04-26T12:00:00`) كلاهما يُحوَّل لسلسلة حرفيًا — لكن الشكل بإزاحة هو الوحيد غير الملتبس في JSON.
هل تُحفَظ الشرطات السفلية في الأعداد؟
لا — يسمح TOML بـ `1_000_000` لتحسين القراءة؛ يحذف المحلِّل الشرطات وتكون قيمة JSON `1000000`. التجميع ميزة لنص مصدر TOML فقط.
ماذا يحدث لتعليقات TOML؟
تُحذَف. تبدأ تعليقات TOML بـ `#`؛ ولا يحوي JSON صياغة تعليقات، لذا يتجاهلها المحلِّل. إن احتجت الحفاظ عليها فستحتاج تنسيقًا وسيطًا مختلفًا.
هل تُدعَم مصفوفات الجداول؟
نعم. كتل `[[products]]` المتكررة تصبح مصفوفة JSON تحت المفتاح `products`. كل رأس `[[products]]` يبدأ مدخل مصفوفة جديدًا؛ ثم تملأ الأسطر التالية من نوع مفتاح-قيمة هذا المدخل.
هل يمكنني تحويل ملفات TOML كبيرة جدًا؟
حتى نحو 30 ميغابايت قبل أن تتباطأ منطقة النص. ملفات TOML الكبيرة جدًا نادرة — معظم ملفات الإعدادات أقل بكثير من 1 ميغابايت.
هل يُرفَع TOML الخاص بي؟
لا. كل شيء يعمل في متصفحك — تُحلَّل بياناتك بـ JavaScript على هذه الصفحة ولا تُرسَل إلى أي خادم.