JSON مقابل TOML: مقارنة تنسيقات التكوين
قارن بين تنسيقات JSON و TOML لملفات التكوين. تعلم الاختلافات الرئيسية وطرق التحويل ومتى تستخدم كل تنسيق لمشاريعك.
Big JSON Team
• Technical WriterExpert in JSON data manipulation, API development, and web technologies. Passionate about creating tools that make developers' lives easier.
نظرة عامة على JSON مقابل TOML
JSON و TOML هما تنسيقان شائعان للبيانات، لكن TOML (Tom's Obvious Minimal Language) صُمم خصيصًا لملفات التكوين مع التركيز على القابلية للقراءة البشرية.
مقارنة سريعة
| الميزة | JSON | TOML |
|--------|------|------|
| بناء الجملة | أقواس معقوفة | نمط INI |
| تعليقات | لا | نعم |
| قابلية القراءة | جيدة | ممتازة |
| امتداد الملف | .json | .toml |
| سرعة التحليل | أسرع | متوسطة |
| الاعتماد | عالمي | متزايد |
أمثلة بناء الجملة
تكوين JSON
{
"database": {
"server": "192.168.1.1",
"ports": [8001, 8002, 8003],
"connection_max": 5000,
"enabled": true
},
"servers": {
"alpha": {
"ip": "10.0.0.1",
"dc": "eqdc10"
},
"beta": {
"ip": "10.0.0.2",
"dc": "eqdc10"
}
}
}
تكوين TOML
# تكوين قاعدة البيانات
[database]
server = "192.168.1.1"
ports = [8001, 8002, 8003]
connection_max = 5000
enabled = true
# تكوينات الخوادم
[servers.alpha]
ip = "10.0.0.1"
dc = "eqdc10"
[servers.beta]
ip = "10.0.0.2"
dc = "eqdc10"
الاختلافات الرئيسية
التعليقات
JSON: لا يوجد دعم أصلي للتعليقات{
"_comment": "استخدام حل بديل للتعليقات",
"setting": "value"
}
TOML: دعم كامل للتعليقات
# هذا تعليق مناسب
setting = "value" # التعليقات المضمنة تعمل أيضًا
قابلية القراءة
TOML يزيل الفوضى البصرية:
- لا حاجة لأقواس معقوفة أو علامات اقتباس للمفاتيح
- عناوين أقسام واضحة
- بناء جملة جداول طبيعي
- أفضل للهياكل المتداخلة
أنواع البيانات
كلاهما يدعم:
- سلاسل نصية، أعداد صحيحة، أعداد عشرية، قيم منطقية
- مصفوفات
- هياكل متداخلة
إضافات TOML:
- تواريخ وأوقات (أصلية)
- جداول مضمنة
# تاريخ-وقت أصلي في TOML
created = 2026-02-14T10:30:00Z
# جدول مضمن
point = { x = 1, y = 2 }
متى تستخدم JSON
متى تستخدم TOML
أمثلة التحويل
TOML إلى JSON (Python)
import json
import tomli # Python 3.11+ لديه tomllib مدمج
with open('config.toml', 'rb') as f:
data = tomli.load(f)
with open('config.json', 'w') as f:
json.dump(data, f, indent=2)
JSON إلى TOML (Python)
import json
import tomli_w
with open('config.json') as f:
data = json.load(f)
with open('config.toml', 'wb') as f:
tomli_w.dump(data, f)
حالات الاستخدام الشائعة
نقاط قوة JSON
{
"api_response": {
"status": 200,
"data": [
{"id": 1, "name": "Item 1"},
{"id": 2, "name": "Item 2"}
]
}
}
نقاط قوة TOML
# تكوين التطبيق
[app]
name = "MyApp"
version = "1.0.0"
debug = false
[app.database]
url = "postgresql://localhost/mydb"
pool_size = 10
[app.logging]
level = "info"
file = "/var/log/myapp.log"
الأخطاء الشائعة
ترتيب الجداول في TOML
# خطأ - لا يمكن الإضافة إلى [fruit] بعد المصفوفة
[fruit]
name = "apple"
[[fruit.varieties]] # مصفوفة من الجداول
name = "red"
[fruit] # خطأ! معرف بالفعل
color = "red"
# صحيح - حدد جميع مفاتيح الجدول أولاً
[fruit]
name = "apple"
color = "red"
[[fruit.varieties]]
name = "red"
دليل القرار
اختر JSON عندما:- تبني واجهات برمجة تطبيقات ويب
- تحتاج أقصى توافق
- الأداء حاسم
- تعمل مع JavaScript/المتصفحات
- تولد البيانات برمجيًا
- تكتب ملفات تكوين
- القابلية للقراءة البشرية أولوية
- التعليقات ضرورية
- تعمل مع مشاريع Rust أو Python
- التكوين يحتاج مراجعة التحكم في الإصدار
أدوات شائعة
أدوات JSON
- jq (معالج سطر الأوامر)
- كل لغات البرمجة
- أدوات تنسيق عبر الإنترنت في كل مكان
أدوات TOML
- tomli/tomllib (Python)
- toml crate (Rust)
- TOML Language Support (VS Code)
- أدوات التحقق من TOML عبر الإنترنت
اعتماد النظام البيئي
JSON: عالمي (1999+)- جميع متصفحات الويب
- جميع اللغات الرئيسية
- معيار REST API
- Rust: Cargo.toml
- Python: pyproject.toml
- مولد المواقع الثابتة Hugo
- العديد من أدوات CLI
الخلاصة
JSON يهيمن على تبادل البيانات وواجهات برمجة التطبيقات، بينما TOML يتفوق في ملفات التكوين. تستخدم العديد من المشاريع الحديثة كليهما: JSON لبيانات وقت التشغيل و TOML للتكوين القابل للتحرير بواسطة الإنسان. اختر بناءً على حالة الاستخدام الخاصة بك: إذا كان البشر سيحررونه بشكل متكرر، فإن قابلية قراءة TOML تفوز؛ إذا كانت الآلات تولده، فإن عالمية JSON لا تُقهر.
مقالات ذات صلة
ما هو JSON؟ دليل شامل للمبتدئين
تعلم ما هو JSON، قواعد الصياغة، أنواع البيانات، وحالات الاستخدام. دليل شامل للمبتدئين لفهم JavaScript Object Notation وأهميته في تطوير البرمجيات الحديثة.
JSON مقابل XML: أيهما أفضل لمشروعك؟
مقارنة شاملة بين JSON و XML من حيث الأداء، سهولة الاستخدام، والحالات المثلى لكل منهما.
JSON مقابل YAML: متى تستخدم كل منهما
مقارنة شاملة بين JSON و YAML. الفروقات، الاستخدامات، المزايا والعيوب.