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

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

يحوّل كائن JSON إلى TOML. تصبح الكائنات المتداخلة أقسام [table]، ومصفوفات الكائنات [[array of tables]]، وتُحذف المفاتيح ذات القيم null لأن TOML لا يعرف null.

تحويل إعدادات JSON إلى صيغة pyproject.toml أو Cargo.toml أو wrangler.toml أو إعدادات Hugo.

JSON

متى تستخدمها

  • تحويل إعدادات JSON إلى صيغة pyproject.toml أو Cargo.toml أو wrangler.toml أو إعدادات Hugo.
  • نقل إعدادات أنشأها سكربت بصيغة JSON إلى ملف إعدادات قائم على TOML.

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

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

كائن JSON

{
  "title": "My App",
  "port": 8080,
  "debug": false,
  "owner": { "name": "Ada", "since": "2024-01-05T10:00:00Z" },
  "servers": [
    { "host": "a.example.com", "weight": 3 },
    { "host": "b.example.com", "weight": 1 }
  ],
  "ports": [80, 443]
}

TOML

title = "My App"
port = 8_080
debug = false
ports = [ 80, 443 ]

[owner]
name = "Ada"
since = "2024-01-05T10:00:00Z"

[[servers]]
host = "a.example.com"
weight = 3

[[servers]]
host = "b.example.com"
weight = 1

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

تحصل الأعداد الصحيحة من 1000 فأكثر على شرطات سفلية فاصلة (يصبح 8080 هو 8_080). هذا TOML صالح ويُحلَّل إلى العدد نفسه.

تبقى سلاسل التواريخ سلاسل نصية بين علامتي اقتباس؛ فلا يوجد نوع تاريخ في JSON، لذا لا تُنتج قيم datetime في TOML.

تُحذف المفاتيح ذات القيم null بصمت، ويُكتب 1.0 من JSON كعدد صحيح 1.

يعمل في متصفحك باستخدام @iarna/toml. تُرفض القائمة التي تخلط الكائنات بقيم أخرى، لأن مصفوفات الجداول في TOML لا تستوعبها. تُزاح الجداول الفرعية بمسافتين؛ ويتجاهل TOML ذلك.

FAQ

هل يمكنني تحويل مصفوفة JSON في المستوى الأعلى؟

لا. يجب أن يكون مستند TOML جدولًا، لذا توضح الصفحة أن JSON مصفوفة وتقترح تغليفه في كائن، مثل {"items": [...]}.

ماذا يحدث للقيم null؟

يُحذف المفتاح. ينتج {"a": null} مخرجات فارغة. استخدم سلسلة نصية فارغة أو احذف المفتاح عن قصد إذا كانت الأداة المستهدفة تتوقعه.

لماذا تحتوي الأعداد على شرطات سفلية؟

يُنسّق المُسلسِل (serializer) الأعداد الصحيحة الكبيرة بفواصل أرقام _، وهو ما تسمح به مواصفة TOML. يقرأ أي محلل TOML القيمة 8_080 على أنها 8080.

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