مبدل YAML به JSON
YAML را جایگذاری کنید و JSON مرتب تحویل بگیرید — یا برعکس — با پردازش درست اشیای تودرتو و فهرستها، نه فقط جفتهای کلید-مقدار ساده.
دربارهٔ این ابزار
این مبدل YAML/JSON چه کاری انجام میدهد
مانیفستهای Kubernetes، گردشکارهای GitHub Actions، فایلهای Docker Compose و نیمی از پیکربندیهای برنامههای مدرن با YAML نوشته میشوند، اما بسیاری از ابزارها و APIها فقط با JSON کار میکنند. این مبدل هر دو جهت را در یک صفحه پوشش میدهد: YAML را جایگذاری کنید و JSON تحویل بگیرید، یا JSON را جایگذاری کنید و YAML دریافت کنید. جهت تبدیل با یک کلیک تغییر میکند و محتوای هر دو ناحیهٔ متنی نیز بلافاصله با هم جابهجا میشود.
این یک تجزیهگر واقعی است، نه راهحلی مبتنی بر عبارات منظم — نگاشتهای تودرتو، فهرستهای تودرتو، فهرستهایی از اشیا، نظرها (#)، رشتههای داخل علامت نقلقول تکی و دوتایی، و مجموعههای جریانی درونخطی مانند [80, 443] یا {a: 1, b: 2} همه بهدرستی پردازش میشوند و با شکل واقعی فایلهای پیکربندی در دنیای واقعی مطابقت دارند، نه اینکه فقط از جفتهای کلید-مقدار ساده پشتیبانی شود.
نحوهٔ استفاده
یک جهت را انتخاب کنید، محتوای خود را در کادر سمت چپ جایگذاری کنید تا نتیجهٔ تبدیل هنگام تایپ در سمت راست نمایش داده شود — بدون نیاز به فشردن دکمه. برای جابهجایی همزمان حالت و محتوای دو ناحیهٔ متنی، از «Swap Direction» استفاده کنید؛ این گزینه برای یک بررسی سریع رفتوبرگشتی بسیار کاربردی است. هنگام تبدیل YAML به JSON نیز میتوانید خروجی JSON را با تورفتگی ۲ فاصله، ۴ فاصله یا بهصورت فشرده انتخاب کنید. هر زمان خواستید روی «Load Sample» بزنید تا نمونهای آماده شامل اشیای تودرتو، یک فهرست و یک آرایهٔ درونخطی را ببینید.
یک نمونهٔ واقعی
یک قطعهٔ معمول به سبک Kubernetes مانند:
replicas: 3 selectیا: app: web pیاts: - 80 - 443
converts cleanly to {"replicas": 3, "selectیا": {"app": "web"}, "pیاts": [80, 443]} — شیء تودرتو و فهرست هر دو حفظ میشوند و تخت نمیشوند.
پرسشهای متداول
آیا از لنگرها و نامهای مستعار YAML (& و *) پشتیبانی میکند؟
خیر — لنگرها و نامهای مستعار، فایلهای چندسندی (جداشده با ---)، و scalarهای بلوکی (| و > برای رشتههای چندخطی) پشتیبانی نمیشوند. این موارد بخش کوچکی از فایلهای پیکربندی واقعی را تشکیل میدهند؛ نگاشتهای تودرتو، فهرستها و مقادیر اسکالر استاندارد — که بخش عمده YAMLهایی هستند که در عمل با آنها سروکار خواهید داشت — بهدرستی کار میکنند.
چرا بعد از تبدیل رشتهام به YAML، داخل علامت نقلقول قرار گرفت؟
مبدل هر رشتهای را که ممکن است در غیر این صورت بهعنوان عدد، بولین، null یا نحوی از YAML اشتباه تفسیر شود، داخل علامت نقلقول قرار میدهد (مانند مقداری که با - یا containing : ) — این رویکرد محافظهکارانه است تا تضمین شود خروجی دوباره بهدرستی تجزیه میشود، حتی اگر به این معنا باشد که چند علامت نقلقول اضافی درج شود که از نظر دستینویسی الزاماً به آنها نیاز ندارید.
آیا این ابزار همان لینتر یا اعتبارسنج YAML است؟
نه کاملاً — این ابزار YAML شما را با یک شِما بررسی نمیکند؛ فقط آن را تبدیل میکند. اگر YAML شما مشکل نحوی واقعی داشته باشد، تبدیل ناموفق میشود و خطا نمایش داده میشود، اما ایرادهایی مانند کلیدهای تکراری را—آنطور که یک لینتر اختصاصی انجام میدهد—گزارش نمیکند.
آیا میتوانم آرایهٔ JSON را در سطح بالا، نه فقط یک شیء، تبدیل کنم؟
بله — هر دو جهت، آرایههای سطح بالا و همچنین اشیای سطح بالا را پشتیبانی میکنند.
آیا دادههای من جایی بارگذاری میشوند؟
خیر. تجزیه و تبدیل هر دو کاملاً در مرورگر شما انجام میشوند؛ هیچچیزی که جایگذاری میکنید به سرور ارسال نمیشود.
