انتقل إلى المحتوى

تحويل TOML إلى JSON — Numio

حوّل جداول TOML ومصفوفاته وتواريخه إلى JSON في متصفحك. تحقق من بنية ملف الإعدادات، واحصل على خطأ بدلًا من قيم تتغير بصمت للأعداد التي لا يستطيع JSON تمثيلها.

عرض الجداول ومصفوفات الجداول في ملف إعدادات ككائنات ومصفوفات JSON.

Converted in your browser. Comments are omitted. Non-finite numbers and unsafe integers are rejected instead of silently losing their values.

Load an example (replaces your input)

TOML

متى تستخدمها

  • عرض الجداول ومصفوفات الجداول في ملف إعدادات ككائنات ومصفوفات JSON.
  • تمرير ملف TOML يحتوي على تعليقات إلى أداة لا تقبل إلا JSON.

طريقة الاستخدام

  1. الصق TOML أو حمّل مثالًا (إعدادات وجداول، مصفوفات جداول، تواريخ وسلاسل متعددة الأسطر).
  2. اقرأ JSON على اليمين: يصبح [server] كائنًا ويصبح [[products]] مصفوفة كائنات.
  3. إذا ظهر خطأ فابحث عن مفاتيح مكررة ومشكلات في علامات الاقتباس. تحقق من السلاسل النصية والأعداد والتواريخ قبل النسخ.

إدخال TOML

[[products]]
code = "001"
name = "Notebook"

[[products]]
code = "002"
name = "Pen"

مخرجات JSON

{
  "products": [
    { "code": "001", "name": "Notebook" },
    { "code": "002", "name": "Pen" }
  ]
}

التفاصيل والقيود

يجري التحويل في متصفحك. لا تُنقل التعليقات والمسافات وأنماط علامات الاقتباس في TOML.

لا يوجد نوع تاريخ في JSON، لذا تصبح التواريخ سلاسل نصية، وقد تُوحَّد طريقة كتابة المنطقة الزمنية. ضع القيم بين علامتي اقتباس في TOML إن أردتها دون تغيير.

لا توجد inf وnan في JSON، والأعداد الصحيحة دقيقة فقط حتى ±9,007,199,254,740,991. تُنتج مثل هذه القيم خطأً بدلًا من null أو أرقام مقرّبة؛ اكتب المعرّفات الكبيرة كسلاسل نصية.

يُتحقق من صياغة TOML فقط. لا يُتحقق من الحقول الإلزامية في Cargo.toml أو pyproject.toml أو الصيغ الأخرى.

FAQ

هل يمكنني تحويل wrangler.toml إلى JSON؟

نعم من حيث البنية: تصبح الجداول كائنات و[[arrays]] مصفوفات كائنات بأسماء المفاتيح نفسها. تُحذف التعليقات، لذا قارن النتيجة بتوثيق إعدادات Wrangler من Cloudflare قبل استبدال ملفك.

كيف أحوّل TOML إلى JSON في Python؟

يتضمن Python 3.11 وما بعده tomllib: python -c "import json,sys,tomllib; print(json.dumps(tomllib.load(open(sys.argv[1],'rb')), indent=2, default=str))" config.toml. يحوّل default=str التواريخ إلى سلاسل نصية، كما تفعل هذه الصفحة.

هل يمكنني الإبقاء على الأصفار البادئة؟

اكتب القيمة كسلسلة نصية، مثل code = "001". ضع بين علامتي اقتباس المعرّفات التي لا تريد أن تُعامَل كأعداد.

لماذا يسبب عدد كبير خطأً؟

لا تستطيع أعداد JavaScript تمثيل كل عدد صحيح كبير بدقة، ولا يعرف JSON القيمتين inf وnan. يتوقف التحويل بدلًا من تغيير القيمة؛ اكتب المعرّفات الدقيقة كسلاسل نصية في TOML.

المواصفات والمراجع