محول TOML إلى JSON

الصق TOML على اليمين، احصل على JSON على اليسار. الجداول تصبح كائنات، مصفوفات الجداول تصبح مصفوفات. بدون رفع.

  1. الصق TOML في منطقة النص اليمنى.
  2. انقر «التحويل إلى JSON». المخرج كائن JSON يحفظ تداخل الجداول.
  3. انسخ النتيجة أو نزّلها كـ data.json.
  4. تتحول قيم التاريخ-الوقت إلى سلاسل 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 على هذه الصفحة ولا تُرسَل إلى أي خادم.