تحويل YAML إلى JSON عبر الإنترنت
الصق إعدادات YAML لتحصل على البيانات نفسها في صورة كائنات وقوائم منظمة: في المثال يصل المنفذان 8080 و8443 رقمين حقيقيين، وتبقى true وfalse قيمًا منطقية. يُبلَّغ عن المسافات البادئة المكسورة ولا تُخمَّن أبدًا. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
حوّلوا الإعدادات المنظمة من دون تغيير معناها
يشيع استخدام YAML في ملفات الإعداد لأن المسافات البادئة وصيغة القوائم المختصرة تجعل المستندات الطويلة مريحة للتحرير البشري. وهكذا تظل الخدمات المتداخلة وإعدادات البيئة وقوائم المنافذ وعلامات الميزات والبيانات الوصفية منظمة، ولا تتحول إلى نص مسطح. التحويل حتمي، ولذلك يعطي الإدخال المطابق دائماً الكائن نفسه وترتيب المفاتيح نفسه.
تفيد هذه الثباتية عند مراجعة الناتج ضمن طلب تغيير أو مقارنته بواسطة اختبار. وإذا احتوى المصدر على مسافة بادئة غير صحيحة أو مجموعة تدفق غير مغلقة أو قيمة مقتبسة تالفة أو مشكلة نحوية أخرى، تفشل العملية برسالة واضحة بدلاً من اختراع بنية صامتة قد يجري نشرها.
أعدّوا YAML بعناية وافهموا أنواع النتائج
ابدؤوا بمستند YAML واحد يحتوي على خريطة أو تسلسل أو تركيبات متداخلة منهما. يجب أن تستخدم المسافة البادئة فراغات لا علامات جدولة، وأن تصطف العناصر المتجاورة في المستوى نفسه. ضعوا القيمة بين علامتي اقتباس عندما يلزم أن تبقى نصاً، ولا سيما إذا كان المعرّف يبدو رقمياً أو كانت كلمة مثل true غير مقصودة كقيمة منطقية.
تقبل الأداة مجموعات الكتل والصيغ المتدفقة المألوفة مثل [one, two] و{name: api, enabled: true}. يمكن للنص الحرفي أو المطوي تمثيل محتوى متعدد الأسطر، بينما تُهمل التعليقات المضمنة أثناء تحويل البيانات. ترفض القدرة عمداً مراسي YAML وأسماءها المستعارة ووسومها الصريحة، بدلاً من إظهار حل غير صحيح للميزات المتقدمة.
كما تقبل مستنداً واحداً فقط في كل طلب. إذا احتوى الملف على فواصل بين مستندات مستقلة متعددة، فقسّموه أولاً وحوّلوا كل مستند على حدة.
للفحص بالعين أو للأتمتة المتكررة
الصقوا المصدر وشغّلوا المحول ثم انسخوا النتيجة المنظمة إلى الأداة المقصودة. كما يمكن لأداة دعم عرض الإعداد المحلل في فاحص كائنات آمن من دون صيانة تنفيذ ثان للتحويل. في كل حالة، تعاملوا مع استجابة الإدخال غير الصالح بوصفها إشارة لإيقاف المسار، وأعيدوا رسالة المحلل إلى الشخص المسؤول عن المصدر.
لا تعيدوا محاولة YAML غير الصالح من دون تعديل، لأن التحليل حتمي. ولأن الخوارزمية لا تستخدم شبكة أو ساعة أو قيمة عشوائية أو نموذجاً، فهي مناسبة لعمليات البناء والاختبارات القابلة للتكرار التي يجب أن ينتج فيها المصدر نفسه النتيجة نفسها دائماً.
الأسئلة الشائعة
هل تُحفظ الأرقام والقيم المنطقية؟
استخدموا الاقتباس في YAML عندما يجب أن تبقى القيمة نصاً.
لماذا يفشل تحويل ملف YAML الخاص بي؟
غالبًا بسبب استخدام علامات الجدولة بدل المسافات في البادئة، أو عناصر متجاورة غير محاذية، أو قوس معقوف أو مربع غير مغلق، أو قيمة مقتبسة مكسورة. تشير الرسالة إلى المشكلة، وإعادة المحاولة دون تغيير تعطي الخطأ نفسه.
كيف أبقي رمزًا يشبه الرقم أو كلمة true نصًا؟
ضعه بين علامتي اقتباس. فمن دونهما تصبح true وfalse قيمًا منطقية وتصبح الأرقام أعدادًا، أما بينهما فيبقى المعرّف الذي يبدو رقميًا، أو كلمة true نفسها، نصًا كما كُتب.
ماذا يحدث للتعليقات في ملف YAML؟
تُتجاهل أثناء التحويل. فالصيغة الناتجة ليس فيها مكان قياسي للتعليقات، لذا لا تظهر في النتيجة، لكنها لا تغيّر أي بيانات من حولها.
هل تُقبل المراسي أو عدة مستندات في ملف واحد؟
لا. تُرفض المراسي والإشارات إليها والوسوم الصريحة بدل حلها بشكل خاطئ، وكل تحويل يقبل مستندًا واحدًا. إذا احتوى الملف على عدة مستندات فقسّمه عند فواصل المستندات وحوّل كل جزء على حدة.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/web/yaml-to-json \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"service:\n name: api\n ports:\n - 8080\n - 8443\nenabled: true"}'const res = await fetch("https://api.kit.forhosting.com/web/yaml-to-json", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "service:\n name: api\n ports:\n - 8080\n - 8443\nenabled: true"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/yaml-to-json",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "service:\n name: api\n ports:\n - 8080\n - 8443\nenabled: true"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/yaml-to-json", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"service:\\n name: api\\n ports:\\n - 8080\\n - 8443\\nenabled: true"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"service:\n name: api\n ports:\n - 8080\n - 8443\nenabled: true"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/yaml-to-json", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"text": "service:\n name: api\n ports:\n - 8080\n - 8443\nenabled: true"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.yaml_to_json",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
timeout_sec | 30 |
max_crawl_pages | 25 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
حوّلوا مستند YAML إلى JSON مكافئ من دون إعادة كتابة المسافات البادئة أو القوائم أو القيم المنطقية أو الأرقام أو كائنات الإعداد المتداخلة يدوياً. الصقوا YAML في أداة المتصفح للحصول على نتيجة فورية، أو استدعوا واجهة API عندما يكون التحويل جزءاً من مسار بناء أو تحقق أو ترحيل أو نشر. ينتج المحلل بيانات حتمية متوافقة مع JSON، ويبلغ عن YAML غير الصالح بوصفه خطأ إدخال بدلاً من إعادة مستند مخمّن أو محوّل جزئياً. لذلك تصلح النتيجة للفحص السريع وللأتمتة القابلة للتكرار معاً.
حوّلوا الإعدادات المنظمة من دون تغيير معناها
لكن كثيراً من واجهات API وأدوات المتصفح وبرامج التحقق وبيئات البرمجة تتوقع JSON. تصل هذه الأداة بين التنسيقين مع الحفاظ على نموذج البيانات الأساسي؛ فتتحول الخرائط إلى كائنات JSON، والتسلسلات إلى مصفوفات، وتحتفظ القيم المنطقية والأرقام والسلاسل والقيم الخالية المعروفة بأنواعها المناسبة. لا تظهر التعليقات في نتيجة JSON لأن هذا التنسيق لا يملك نوعاً معيارياً لها، لكنها لا تغير البيانات المحللة.
أعدّوا YAML بعناية وافهموا أنواع النتائج
تتحول القيم البسيطة مثل true وfalse وnull والأعداد الصحيحة والكسور والصيغة العلمية إلى أنواع JSON المقابلة. تجعل هذه الحدود الأخطاء سهلة الفهم، وتضمن إمكان تسلسل كل قيمة معادة مباشرة بصيغة JSON معيارية.
استخدموا المتصفح للفحص وواجهة API للأتمتة
تفيد تجربة المتصفح عند مراجعة ملف إعداد أو تجهيز طلب API أو تشخيص بيان نشر أو توضيح الطريقة الدقيقة التي تظهر بها بنية YAML الهرمية داخل JSON. وللأعمال المتكررة، أرسلوا حقل النص نفسه عبر واجهة API مقابل $0.002 لكل عنصر. يستطيع مسار التكامل المستمر تحويل إعداد محفوظ في المستودع قبل تمريره إلى مدقق JSON Schema. ويمكن لنص ترحيل برمجي تسوية YAML الوارد قبل تخزين البيانات في نظام يعتمد JSON.
حالات التكامل
التحقق من إعدادات النشر
حوّلوا ملف YAML لخدمة أو عملية نشر إلى JSON قبل تطبيق مدقق JSON Schema عليه ضمن التكامل المستمر.
إعداد البيانات لواجهة تقبل JSON فقط
حوّلوا قالب طلب YAML الذي يديره البشر إلى كائن JSON الذي يتطلبه تكامل أو خدمة داخلية.
فحص الإعدادات المتداخلة
حوّلوا YAML غير المألوف إلى JSON كي يعرض فاحص المتصفح أو أداة الفروق أو أداة التشخيص بنيته وأنواعه بدقة.
أسئلة تقنية
ما تكلفة تحويل YAML إلى JSON؟
تبلغ تكلفة كل تحويل عبر واجهة API مقدار $0.002 لكل عنصر. ويمكن استخدام أداة المتصفح مباشرة للتحويل التفاعلي.
ماذا يحدث عندما تكون صيغة YAML غير صالحة؟
تعيد القدرة خطأ invalid_input مع رسالة تصف مشكلة البنية أو المسافة البادئة المكتشفة، ولا تعيد JSON جزئياً.
هل تُضمّن تعليقات YAML في JSON؟
لا. لا يوفر JSON تمثيلاً معيارياً لتعليقات YAML، ولذلك تُهمل التعليقات مع الحفاظ على قيم البيانات الأساسية.
هل يمكن تحويل عدة مستندات YAML في طلب واحد؟
لا. أرسلوا مستند YAML واحداً في كل طلب لكي تكون النتيجة قيمة JSON واحدة واضحة لا لبس فيها.