من TOML إلى JSON
ملف Cargo.toml في Rust، وpyproject.toml في Python، وconfig.toml في Hugo: صيغة TOML حاضرة في كل مكان من عالم التهيئة الحديث، بينما ما تزال أدوات كثيرة لا تفهم سوى JSON. الصق TOML هنا لتحصل على JSON منسق بوضوح: أقسام [الجداول] تصبح كائنات متداخلة، وكتل [[مصفوفات الجداول]] تصبح مصفوفات كائنات، وتمر التواريخ كما هي على شكل سلاسل نصية. يغطي المحلل الجوهر اليومي من TOML؛ أما حدوده الحقيقية (القيم متعددة الأسطر، الجداول المضمّنة، المفاتيح المنقّطة) فمذكورة بصراحة أدناه.
كيف يعمل التحويل
-
1
الصق TOML
ضع النص في حقل الإدخال واضغط زر التحويل إلى JSON. تعليقات # التي تشغل سطرا كاملا تتجاوز تلقائيا.
-
2
الجداول تصبح كائنات
ترويسة `[server.database]` تتحول إلى كائنات JSON متداخلة، بمستوى واحد لكل اسم مفصول بنقطة.
-
3
مصفوفات الجداول تصبح مصفوفات
كتل `[[users]]` تبني مصفوفة JSON بكائن واحد لكل كتلة.
-
4
القيم المفردة تحتفظ بنوعها
السلاسل بين علامات اقتباس، والأعداد الصحيحة والعشرية البسيطة، وtrue/false تصبح أنواع JSON أصلية؛ وتبقى التواريخ سلاسل نصية كما كتبت تماما.
-
5
انسخ JSON
النتيجة منسقة بمسافة بادئة من 4 مسافات، والمفاتيح بترتيبها الأصلي، وجاهزة للنسخ.
كيف تتقابل الأنواع
| قيمة TOML | قيمة JSON | مثال |
|---|---|---|
| سلسلة (أساسية أو حرفية) | سلسلة | "hello" → "hello" |
| عدد صحيح (عشري بسيط) | عدد | 42 → 42 |
| عدد عشري (عشري بسيط) | عدد | 3.14 → 3.14 |
| قيمة منطقية | قيمة منطقية | true → true |
| مصفوفة (سطر واحد) | مصفوفة | [1, 2, 3] → [1, 2, 3] |
| جدول بمفاتيح | كائن | [server] + port = 8080 → "server": {"port": 8080} |
| مصفوفة جداول | مصفوفة كائنات | [[users]] + name = "alice" → "users": [{"name": "alice"}] |
| تاريخ ووقت | سلسلة كما كتبت | 2026-04-18T10:00:00Z → "2026-04-18T10:00:00Z" |
المخرجات تنسق دائما بمسافة بادئة من 4 مسافات، لذا تمتد المصفوفات والكائنات على عدة أسطر؛ ويعرض الجدول أعلاه القيم في سطر واحد لتسهيل القراءة. يحافظ على ترتيب المفاتيح تماما كما يظهر في ملف TOML لديك.
مثال كامل
title = "My App"
[server]
host = "localhost"
port = 8080
[[users]]
name = "alice"
admin = true
يتحول إلى:
{
"title": "My App",
"server": {
"host": "localhost",
"port": 8080
},
"users": [
{
"name": "alice",
"admin": true
}
]
}
ما يدعمه المحلل من TOML وحدوده الحقيقية
المدعوم: ترويسات [الجداول] بما فيها أسماء الأقسام المنقّطة، و[[مصفوفات الجداول]]، وأزواج key = value في سطر واحد، والسلاسل الأساسية "..." مع محارف الهروب \n و\t و\"، والسلاسل الحرفية '...'، والأعداد الصحيحة والعشرية البسيطة، وtrue/false، والمصفوفات في سطر واحد (مع السماح بالتداخل)، وتعليقات # التي تشغل السطر كاملا، والتواريخ التي تمر كسلاسل نصية.
غير المدعوم، وما ينبغي فعله بدلا منه:
- السلاسل متعددة الأسطر (
"""أو''') والمصفوفات متعددة الأسطر توقف المحلل بخطأ. ضع القيمة في سطر واحد أولا. - الجداول المضمّنة لا تفكك: يخرج
point = { x = 1, y = 2 }على شكل السلسلة"{ x = 1, y = 2 }"لا ككائن. أعد كتابته كقسم[point]مستقل. أسطر الاعتماديات في Cargo.toml مثلserde = { version = "1.0" }هي الحالة الكلاسيكية. - المفاتيح المنقّطة على يسار علامة المساواة تبقى مفتاحا مسطحا واحدا: ينتج
server.host = "a"المفتاح"server.host"دون تداخل. استخدم ترويسة[server]بدلا من ذلك. أما[أسماء.الأقسام]المنقّطة في الترويسات فتتداخل بشكل صحيح. - التعليقات بعد القيمة لا تحذف: يصبح
port = 8080 # mainالسلسلة"8080 # main". أبق التعليقات في أسطر مستقلة. - صيغ الأعداد غير العشرية البسيطة لا تتعرف: تخرج
1_000و0xFFو5e2و+99وinfوnanكسلاسل بين علامات اقتباس. اكتب1000و255و500و99بدلا منها. - محارف الهروب
\uXXXXفي السلاسل الأساسية لا تفك. الصق الحرف الحقيقي بدلا منها.
لمستند TOML 1.0 كامل، استخدم محولا من سطر الأوامر مثل toml2json، أو حمّل الملف عبر tomllib في Python وأخرج JSON من هناك.
أين يفيد هذا
- فحص سريع لمقطع TOML بصيغة JSON أثناء تصحيح الأخطاء.
- تمرير قيم تهيئة بسيطة إلى أدوات الفحص أو السكربتات أو أدوات الجرد التي لا تقبل سوى JSON.
- توليد بيانات اختبار JSON من ملاحظات TOML الأسهل كتابة باليد.
- ترحيل ملفات تهيئة صغيرة ومسطحة، وهو حال كثير من ملفات
config.tomlفي Hugo.
ملاحظات على رحلة الذهاب والإياب
- التعليقات لا تنجو أبدا: لا توجد في JSON صيغة تعليقات أصلا.
- تبقى التواريخ سلاسل نصية؛ وعلى الشيفرة اللاحقة إعادة تحليلها إلى كائنات تاريخ.
- الأعداد الكبيرة: تحفظ الأعداد الصحيحة كقيم 64 بت في نص JSON، لكن مستهلكي JavaScript يفقدون الدقة فوق 2^53. انتبه للطوابع الزمنية بالنانوثانية والمعرفات الرقمية.
- ترتيب المفاتيح يحافظ عليه هذا المحول كما كتب؛ وقد تعيد أدوات JSON أخرى ترتيب المفاتيح عند إخراج المستند من جديد.
الاتجاه المعاكس
التحويل من JSON إلى TOML هو الرحلة الأصعب، لأن في JSON بنى (تداخل مجهول عميق، وقيمة null) لا يملكها TOML أو يعالجها بشكل مختلف. تحتاج معظم سيناريوهات الذهاب والإياب إلى تعديلات يدوية في جانب TOML.
الأسئلة الشائعة
لا. ليست في JSON صيغة تعليقات، لذا تتجاوز تعليقات # التي تشغل السطر كاملا ببساطة. تنبيه مهم: التعليق الذي يلي قيمة في السطر نفسه لا يحذف، فيتحول port = 8080 # main إلى السلسلة “8080 # main”. انقل التعليقات إلى أسطر مستقلة قبل التحويل.
لا. يغطي الجوهر اليومي: الجداول بأسماء الأقسام المنقّطة، ومصفوفات الجداول، وأزواج key = value في سطر واحد، والسلاسل بين علامات اقتباس، والأعداد العشرية البسيطة، والقيم المنطقية، والمصفوفات في سطر واحد، وتعليقات السطر الكامل. أما السلاسل والمصفوفات متعددة الأسطر، والجداول المضمّنة، والمفاتيح المنقّطة، وصيغ الأعداد مثل 1_000 أو 0xFF فغير مدعومة. للمستندات المطابقة للمواصفة كاملة استخدم أداة سطر أوامر مثل toml2json أو tomllib في Python.
ملفات التهيئة المعتادة تتحول فورا. يجري التحويل على خادمنا، لذا تحد المستندات الضخمة بحجم الطلب؛ وللملفات التي تبلغ عدة ميغابايتات يناسبك محول سطر الأوامر أكثر.
نعم، يعمل هذا المحول في جانب الخادم: ينتقل TOML إلى خادمنا عبر HTTPS، ويحول هناك، ويعود في الاستجابة نفسها. لا يخزن المحتوى بعد ذلك؛ ولا يبقى سوى عداد استخدام مجهول الهوية. تجنب لصق الأسرار مثل كلمات المرور أو مفاتيح API.
أدوات ذات صلة
مرجع جدول ASCII
جدول ASCII كامل من 0 إلى 127 مع التمثيل العشري والست عشري والثماني والثنائي والمرجع الرقمي في HTML لكل محرف، بما في ذلك أكواد التحكم مثل NUL وLF وDEL.
مرجع أحرف HTML
قائمة قابلة للبحث بكيانات HTML، مع رموزها المسمّاة والرقمية، بالإضافة إلى خيار النسخ بنقرة واحدة للأحرف والرموز الخاصة.
عدّاد FPS
قِس معدل الإطارات FPS في المتصفح عبر requestAnimationFrame: تنعيم، وأدنى وأقصى معدل إطارات، وحد تنبيه، ورسم بياني اختياري. يعمل محليًا بلا رفع ملفات وبلا API.
أداة إزالة التشفير في لغة جافا سكريبت (JavaScript Deobfuscator)
إزالة التشفير من كود جافا سكريبت مُصغَّر أو مُعبَّأ باستخدام إعادة تسمية المتغيرات، وفك ترميز السلاسل النصية ومصفوفات البيانات، بالإضافة إلى عكس تسطيح تدفق التحكم وتحسين هيكله.
مرجع اختصارات لوحة المفاتيح
ابحث في الاختصارات الافتراضية الموثقة لـ VS Code وChrome وBash مع GNU Readline على macOS وWindows وLinux.
مولد تراخيص
قم بإنشاء النص الكامل لترخيصات المصدر المفتوح مع إدخال اسمك والسنة المقابلة، ويشمل ذلك تراخيص MIT وApache 2.0 وGPLv3 وBSD-3 وMPL-2.0 وCC.
الأداة متاحة بلغات أخرى
- TOML a JSON [ES]
- TOML na JSON [PL]
- TOML เป็น JSON [TH]
- TOMLからJSONへ [JA]
- TOML sang JSON [VI]
- TOML para JSON [PT]
- TOML till JSON [SV]
- TOML en JSON [FR]
- TOML to JSON [KO]
- TOML zu JSON [DE]
- TOML ke JSON [ID]
- TOML naar JSON [NL]
- TOML to JSON [EN]
- TOML in JSON [IT]
- TOML в JSON [RU]
- TOML'dan JSON'a [TR]
- TOML 至 JSON [ZH]