محوّل JSON إلى TOML
الصق JSON واحصل على TOML فورًا في متصفحك. معالجة آمنة للقيم الفارغة، وفحص جدول المستوى الأعلى، وناتج جاهز لـ Cargo.toml وpyproject.toml. خصوصية تامة بلا رفع.
الخيارات · مسافتان
ما هو TOML ولماذا التحويل من JSON؟
TOML (اختصار Tom's Obvious, Minimal Language) هو صيغة ملفات إعداد بُنيت لتكون غير ملتبسة وسهلة القراءة والتحرير على البشر. إنها صيغة الإعداد القياسية لبيئة Rust (Cargo.toml)، وتغليف Python الحديث (pyproject.toml)، وأدوات مثل Hugo وNetlify وPoetry وFoundry. أما JSON فهو الصيغة الآلية العالمية التي تنتجها الأدوات والواجهات البرمجية. تحويل JSON إلى TOML شائع عندما تملك بيانات مهيكلة بصيغة JSON لكنك تحتاج إعداد TOML قابلًا للتحرير يدويًا كوجهة — توليد Cargo.toml أو pyproject.toml، أو تحويل إعدادات JSON لتطبيق إلى ملف إعداد مقروء.
TOML أكثر تهيكلًا من JSON، وتحوّل هذه الأداة تلك الصرامة إلى إرشاد بدلًا من إخفاقات غامضة:
**1. فرض جدول المستوى الأعلى.** كل مستند TOML هو جدول عند الجذر — المصفوفة أو القيمة القياسية المجرّدة ليست TOML صالحًا. بدلًا من إصدار ناتج معطوب لإدخال بمصفوفة على المستوى الأعلى، تكتشفه هذه الأداة وتخبرك بالضبط كيف تغلّف بياناتك تحت مفتاح، فتحصل دائمًا إما على TOML صالح أو شرح واضح.
**2. تعامل آمن وشفاف مع القيم الفارغة.** يملك JSON القيمة null؛ ولا يملكها TOML. معظم المحوّلات إما تنهار أو تتجاهل البيانات بصمت. هذه الأداة صريحة: مفاتيح الكائنات ذات القيم الفارغة تُسقَط وتُسرَد المفاتيح المزالة في تحذير، وnull داخل مصفوفة — التي لا تملك تمثيلًا صالحًا في TOML — تُنتج خطأً دقيقًا يشير إلى المسار. لا تُفاجَأ أبدًا ببيانات مفقودة.
**3. ناتج TOML اصطلاحي.** الكائنات المتداخلة تصبح جداول [tables]، والكائنات العميقة التداخل تصبح جداول منقّطة ([tool.ruff])، ومصفوفات الكائنات تصبح مصفوفات جداول ([[section]]) — الشكل الذي تستخدمه ملفات Cargo.toml وpyproject.toml الحقيقية. التحويل مدعوم بمكتبة smol-toml عديمة الاعتماديات والمتوافقة مع TOML 1.0.0.
**4. خصوصية بنسبة 100% داخل المتصفح.** JSON الخاص بك — الذي قد يحتوي بيانات اعتماد أو رموزًا أو تفاصيل خدمات داخلية — لا يغادر متصفحك أبدًا. لا رفع، ولا خادم، ولا تسجيل. أكّده في تبويب الشبكة بمتصفحك.
تحتاج الاتجاه المعاكس؟ استخدم محوّل TOML إلى JSON. تعمل مع صيغ إعداد أخرى؟ جرّب محوّل JSON إلى YAML ومحوّل YAML إلى JSON، أو نظّف إدخال JSON أولًا بـ منسّق JSON. لكل صيغة مجالها: JSON للتبادل الآلي، وTOML لإعداد التطبيقات والأدوات المحرَّر يدويًا، وYAML لمانيفستات البنية التحتية العميقة التداخل. يتيح لك هذا المحوّل الانتقال من JSON إلى TOML دون كتابة أي برمجية.
// Convert JSON to TOML in Node.js using the smol-toml library
import { stringify } from 'smol-toml';
const data = JSON.parse(`{
"package": { "name": "my-app", "version": "1.0.0" },
"dependencies": { "serde": { "version": "1.0" } }
}`);
// The top-level value must be an object; null values on objects are dropped.
const toml = stringify(data);
console.log(toml);
// [package]
// name = "my-app"
// version = "1.0.0"
//
// [dependencies.serde]
// version = "1.0" الميزات الرئيسية
تحويل مباشر
يتحدّث ناتج TOML فورًا أثناء كتابة أو لصق JSON — دون الحاجة إلى زر «تحويل». المدخلات الكبيرة (أكبر من 200 كيلوبايت) تنتقل تلقائيًا إلى الوضع اليدوي لإبقاء المتصفح مستجيبًا.
إرشاد لجدول المستوى الأعلى
يجب أن تكون مستندات TOML جدولًا عند الجذر. إن كان المستوى الأعلى في JSON مصفوفة أو قيمة قياسية، تخبرك الأداة بالضبط كيف تغلّفه تحت مفتاح — بلا ناتج معطوب ولا تخمين.
تعامل آمن مع القيم الفارغة
لا يملك TOML قيمة null. مفاتيح الكائنات ذات القيم الفارغة تُسقَط وتُسرَد في تحذير؛ وnull داخل مصفوفة تثير خطأً دقيقًا يشير إلى المسار. تعرف دائمًا ماذا حدث لبياناتك.
ناتج TOML اصطلاحي
الكائنات المتداخلة تصبح جداول [tables]، والكائنات العميقة التداخل تصبح جداول منقّطة ([tool.ruff])، ومصفوفات الكائنات تصبح مصفوفات جداول ([[section]]) — الشكل الذي تستخدمه ملفات Cargo.toml وpyproject.toml الحقيقية.
إدراك الفرق بين العشري والصحيح
يفصل TOML الأعداد الصحيحة عن العشرية، فالعدد العشري مثل 1.0 يُكتب كعدد صحيح 1. تحذّرك الأداة عندما يغيّر هذا التحويل القسري نوع قيمة، فتصبح مفاجآت التحويل ذهابًا وإيابًا مرئية.
خصوصية بنسبة 100% داخل المتصفح
يجري كل التحليل محليًا في متصفحك. JSON الخاص بك — بما فيه بيانات الاعتماد والرموز وتفاصيل الخدمات الداخلية — لا يُرفَع ولا يُخزَّن ولا يُسجَّل أبدًا.
أمثلة
مصدر Cargo.toml
{
"package": {
"name": "my-app",
"version": "1.0.0",
"edition": "2021"
},
"dependencies": {
"serde": { "version": "1.0", "features": ["derive"] },
"tokio": { "version": "1", "features": ["full"] }
}
} ولّد ملف Cargo.toml الخاص بلغة Rust من JSON — الكائنات المتداخلة تصبح جداول [tables] والكائنات المضمّنة تصبح جداول مضمّنة، تمامًا كما تتوقّع Cargo.
مصدر pyproject.toml
{
"build-system": {
"requires": ["hatchling"],
"build-backend": "hatchling.build"
},
"project": {
"name": "my-package",
"version": "0.3.1",
"requires-python": ">=3.10",
"dependencies": ["requests>=2.31", "pydantic>=2.0"]
}
} ولّد ملف pyproject.toml المتوافق مع PEP 621 من بيانات مشروع JSON الوصفية — مفيد عندما تنتج أداة أو واجهة برمجية JSON وتحتاجه بصيغة TOML.
إعدادات تطبيق
{
"title": "My Service",
"debug": false,
"port": 8080,
"database": {
"host": "localhost",
"port": 5432,
"pool_size": 10
},
"features": ["auth", "metrics", "tracing"]
} حوّل كائن إعدادات تطبيق مسطّح إلى TOML — تبقى القيم القياسية على المستوى الأعلى في الأعلى، ويصبح كائن database المتداخل جدول [database].
خوادم (مصفوفة جداول)
{
"servers": [
{ "name": "alpha", "ip": "10.0.0.1", "ports": [8001, 8002] },
{ "name": "beta", "ip": "10.0.0.2", "ports": [9001] }
]
} مصفوفة الكائنات تصبح مصفوفة جداول ([[servers]]) في TOML — الطريقة الاصطلاحية للتعبير عن الأقسام المكرّرة.
مصدر إعداد Netlify
{
"build": {
"command": "npm run build",
"publish": "dist",
"environment": { "NODE_VERSION": "20" }
},
"redirects": [
{ "from": "/old", "to": "/new", "status": 301, "force": true }
]
} حوّل إعداد نشر JSON إلى netlify.toml، مع جداول [build] و[build.environment] المتداخلة ومصفوفة جداول [[redirects]].
إعداد ببنية منقّطة
{
"tool": {
"ruff": { "line-length": 100, "target-version": "py310" },
"black": { "line-length": 100 }
}
} كائنات JSON العميقة التداخل تصبح جداول TOML منقّطة مثل [tool.ruff] و[tool.black] — الشكل الذي تتوقّعه أدوات pyproject.toml.
كيفية الاستخدام
- 1
الصق JSON الخاص بك
أدخِل أو الصق JSON في حقل الإدخال أعلاه. يمكنك أيضًا النقر «تحميل مثال» لتجربة مصدر Cargo.toml أو مصدر pyproject.toml أو كائن إعدادات تطبيق.
- 2
شاهِد ناتج TOML المباشر
يظهر TOML فورًا في لوحة الإخراج. إن كان JSON يحتوي مصفوفة على المستوى الأعلى أو قيمًا فارغة، تشرح الأداة بالضبط ما يجب فعله بدلًا من إنتاج ناتج معطوب.
- 3
انسخ أو نزّل
انقر «نسخ» لنقل TOML إلى حافظتك، أو «تنزيل» لحفظه كملف .toml جاهز لـ Cargo أو Poetry أو Hugo أو Netlify أو أي أداة تقرأ TOML.
مزالق التحويل من JSON إلى TOML الشائعة
مصفوفة أو قيمة قياسية على المستوى الأعلى
يجب أن تكون مستندات TOML جدولًا (كائنًا) عند الجذر. مصفوفة JSON أو قيمة وحيدة لا يمكن أن تكون مستند TOML. غلّفها تحت مفتاح لتحويلها.
[1, 2, 3]
{ "items": [1, 2, 3] } قيم فارغة في الكائنات
لا يملك TOML نوع null، لذا يُسقَط مفتاح الكائن ذو القيمة الفارغة أثناء التحويل. تحذّرك الأداة بأي المفاتيح أُزيلت. إن احتجت الإبقاء على المفتاح، امنحه قيمة حقيقية أو سلسلة فارغة.
{ "name": "a", "nickname": null } { "name": "a", "nickname": "" } قيمة فارغة داخل مصفوفة
لا يمكن لمصفوفة TOML أن تحتوي على null أو فجوة، لذا فإن JSON مثل [1, null, 3] ليس له ناتج TOML صالح. أزِل الـ null أو استبدلها بقيمة حقيقية قبل التحويل.
{ "ports": [8001, null, 8003] } { "ports": [8001, 8003] } صياغة JSON غير صالحة
يجب أن يكون الإدخال JSON صالحًا أولًا. الفواصل الزائدة وعلامات الاقتباس المفردة والمفاتيح بلا علامات اقتباس أخطاء شائعة منقولة من JavaScript وليست JSON صالحًا ويجب إصلاحها قبل التحويل.
{ 'name': 'a', 'active': true, } { "name": "a", "active": true } العدد العشري ذو الجزء الصفري يصبح صحيحًا
يكتب TOML العدد العشري الذي جزؤه الكسري صفر (1.0) كعدد صحيح 1، مغيّرًا نوعه عند التحويل ذهابًا وإيابًا. تحذّرك الأداة. إن كانت القيمة مفهوميًا عددًا صحيحًا فلا بأس؛ وإن وجب أن تبقى عشرية، فلا يستطيع TOML الحفاظ على ذلك للأعداد الصحيحة.
{ "ratio": 1.0 } → ratio = 1 { "ratio": 1.5 } → ratio = 1.5 خلط كائن ومصفوفة عند المفتاح نفسه
يجب أن يكون مفتاح JSON باتّساق إما كائنًا أو مصفوفة ليُطابِق جدولًا أو مصفوفة جداول. الأشكال غير المتّسقة عبر مجموعة بيانات قد تُنتج TOML مربكًا — طبّع البنية أولًا.
{ "server": { "a": 1 }, "server": [1] } { "server": { "a": 1 }, "servers": [1] } حالات الاستخدام الشائعة
- توليد Cargo.toml
- حوّل JSON مهيكلًا — من أداة سقالة أو واجهة برمجية أو سكربت — إلى Cargo.toml صالح للغة Rust، مع جداول [dependencies] متداخلة وجداول مضمّنة تُنتَج تلقائيًا.
- توليد pyproject.toml
- حوّل بيانات مشروع JSON الوصفية إلى pyproject.toml متوافق مع PEP 621، بما في ذلك جداول [tool.*] المنقّطة، فتستطيع الأدوات التي تصدر JSON إنتاج إعداد تغليف Python.
- إعداد قابل للتحرير يدويًا من JSON
- حوّل إعدادات JSON لتطبيق إلى ملف إعداد TOML مقروء يستطيع البشر تحريره بأريحية، مع إضافة التعليقات لاحقًا يدويًا.
- توليد إعداد النشر
- أنتج netlify.toml أو foundry.toml أو إعدادات منصات مشابهة من JSON، محوّلًا الكائنات المتداخلة ومصفوفات الكائنات إلى الجداول ومصفوفات الجداول التي تتوقّعها تلك الأدوات.
- ترحيل صيغة الإعداد
- انقل الإعداد من نظام قائم على JSON إلى آخر قائم على TOML، مستخدمًا هذا المحوّل جسرًا وتحذيرات القيم الفارغة والمستوى الأعلى لالتقاط أي شيء لن يُطابِق.
- نمذجة بنية TOML
- اِرسم إعدادًا بصيغة JSON — الصيغة التي يكتبها معظم المطوّرين بطلاقة — ثم حوّله إلى TOML لرؤية التخطيط الاصطلاحي للجداول ومصفوفات الجداول قبل تثبيته في مستودع.
تفاصيل تقنية
- تحليل JSON وفق RFC 8259
- يُحلَّل إدخال JSON بدالة JSON.parse() الأصلية في المتصفح، وهي متوافقة تمامًا مع RFC 8259. قبل التسلسل، تتحقّق الأداة من أن القيمة على المستوى الأعلى كائن وتمسح بحثًا عن القيم الفارغة لتحذّر بشأن مفاتيح الكائنات المُسقَطة أو ترفض null داخل مصفوفة مع مسار دقيق.
- ناتج TOML 1.0.0 عبر smol-toml
- يُولَّد TOML بمكتبة smol-toml، وهي مُسلسِل عديم الاعتماديات ومتوافق تمامًا مع TOML 1.0.0. الكائنات المتداخلة تصبح جداول، والكائنات العميقة التداخل تصبح جداول منقّطة، ومصفوفات الكائنات تصبح مصفوفات جداول. الأعداد العشرية ذات الجزء الكسري الصفري تُكتب كأعداد صحيحة وفق قواعد TOML، مع تحذير.
- بنسبة 100% داخل المتصفح — بلا رفع وبلا خادم
- تجري كل المعالجة في محرّك JavaScript بمتصفحك. لا تُرسَل أي بيانات في أي لحظة. المدخلات الأكبر من 200 كيلوبايت تنتقل من الوضع المباشر إلى اليدوي (نقرة «تحويل» صريحة) لإبقاء الواجهة مستجيبة.
أفضل الممارسات
- غلّف مصفوفات المستوى الأعلى تحت مفتاح
- إن كانت بياناتك بطبيعتها مصفوفة JSON، غلّفها في كائن بمفتاح وصفي ({ "items": [...] }) قبل التحويل. يجب أن تكون مستندات TOML جدولًا عند الجذر، والمفتاح يمنح مصفوفتك اسمًا واضحًا في الناتج.
- قرّر ما ينبغي أن تعنيه القيم الفارغة
- قبل التحويل، قرّر ما إذا كان حقل القيمة الفارغة ينبغي أن يختفي (إسقاط المفتاح) أو أن يحمل قيمة. سيُسقط TOML القيم الفارغة للكائنات ويرفض القيم الفارغة للمصفوفات، لذا فإن حسمها في JSON أولًا يمنح ناتجًا متوقعًا وكاملًا.
- استخدم الكائنات المتداخلة للتجميع
- جمّع الإعدادات المترابطة في كائنات متداخلة داخل JSON — تصبح جداول [tables] نظيفة وجداول منقّطة في TOML، وهي أكثر قابلية للقراءة بكثير من قائمة مفاتيح مسطّحة، مطابِقةً لكيفية تنظيم إعدادات Cargo وpyproject.
- تحقّق من JSON أولًا
- إن كان JSON مكتوبًا يدويًا أو من مصدر غير موثوق، تحقّق منه بـ منسّق JSON لالتقاط الفواصل الزائدة وأخطاء علامات الاقتباس قبل التحويل إلى TOML.
- أضِف التعليقات بعد التحويل
- لا يملك JSON تعليقات، لذا لا ينتقل أي منها. وبما أن TOML يدعم تعليقات #، أضِف التوثيق إلى TOML المولَّد يدويًا — وهو أحد الأسباب الرئيسية لنقل الإعداد المحرَّر يدويًا إلى TOML أساسًا.
الأسئلة الشائعة
كيف أحوّل JSON إلى TOML عبر الإنترنت؟
ما هو TOML ولماذا نحوّل JSON إليه؟
لماذا يجب أن يكون المستوى الأعلى في JSON كائنًا؟
ماذا يحدث للقيم الفارغة null عند التحويل من JSON إلى TOML؟
كيف تُحوَّل الكائنات والمصفوفات المتداخلة إلى TOML؟
ماذا يحدث للأعداد العشرية مثل 1.0؟
هل تُرسَل بيانات JSON إلى أي خادم؟
هل يمكنني تحويل TOML مرة أخرى إلى JSON؟
كيف أحوّل JSON إلى TOML من سطر الأوامر؟
كيف أحوّل JSON إلى TOML في Python أو Rust أو Node.js؟
هل يحافظ المحوّل على ترتيب المفاتيح؟
هل هناك حدّ لحجم ملف إدخال JSON؟
أدوات ذات صلة
عرض جميع الأدوات →محوّل Base64 — ترميز وفك ترميز أونلاين
الترميز والتنسيق
رمّز وفك ترميز Base64 مجاناً أونلاين — محوّل فوري مع دعم UTF-8 والرموز التعبيرية. خصوصية 100% — يعمل في متصفّحك. جرّبه الآن.
محوّل Base64 إلى صورة أونلاين
الترميز والتنسيق
فك ترميز سلسلة Base64 أو عنوان URI للبيانات إلى صورة داخل متصفّحك. عاين واقرأ الأبعاد ونوع MIME ثم نزّل كـ PNG أو JPG أو GIF أو SVG. بلا رفع.
محوّل CSV إلى JSON
الترميز والتنسيق
حوّل CSV إلى JSON في متصفحك. RFC 4180، استنتاج الأنواع، صف العنوان، أمان الأعداد الكبيرة. خصوصية 100%.
محوّل .env إلى JSON
الترميز والتنسيق
الصق ملف .env واحصل على JSON فورًا. كلمات مرور قاعدة بياناتك ومفاتيح API لا تغادر متصفحك أبدًا — خاص 100٪، بلا رفع، محلّل dotenv مجاني.
فكّ كيانات HTML المجانية — فكّ تهريب الرموز
الترميز والتنسيق
فُكّ كيانات HTML وفُكّ تهريب HTML أونلاين — مجانًا، بلا تسجيل، 100% داخل متصفحك. يحوّل المراجع بالاسم والعشرية والسداسية إلى أحرف؛ لا يُرفع أبدًا.
ترميز كيانات HTML المجانية — تهريب الرموز
الترميز والتنسيق
رمّز كيانات HTML وهرّب الأحرف الخاصة (< > & " ') أونلاين — مجانًا، بلا تسجيل، 100% داخل متصفحك. خرج بالاسم أو العشري أو السداسي عشري؛ لا يُرفع أبدًا.