مبدل JSON به YAML
JSON را به YAML تمیز و خوانا برای Kubernetes، Docker Compose، GitHub Actions یا Ansible تبدیل کنید، با کنترل کامل روی تورفتگی، سبک و نقلقولها.
اجرا در مرورگر شمابدون ثبتنامبدون آپلود
نحوهٔ استفاده از JSON به YAML
- JSON را در کادر سمت راست جایگذاری کنید یا یک فایل
.jsonباز کنید. - YAML همزمان با تایپ در سمت چپ ظاهر میشود.
- تورفتگی (2 یا 4 فاصله) و سبک را انتخاب کنید: block (هر کلید در یک خط) یا flow (
{a: 1}/[x, y]) از یک سطح تودرتویی مشخص. - یک سبک نقلقول انتخاب کنید و اگر ترتیب الفبایی میخواهید مرتبسازی کلیدها را فعال کنید.
- YAML را کپی یا دانلود کنید. JSON نامعتبر با خط، ستون و علت محتمل گزارش میشود.
چرا JSON را به YAML تبدیل کنیم؟
JSON برای ماشینها و APIها ایدهآل است، اما خواندن و ویرایش YAML برای انسانها آسانتر است: بدون آکولاد، بدون نقلقول اجباری و با پشتیبانی از کامنت. بیشتر ابزارهای زیرساخت، از جمله Kubernetes، Helm، Docker Compose، GitHub Actions، GitLab CI و Ansible، با YAML پیکربندی میشوند، در حالی که دادهای که از آن شروع میکنید (خروجی API، kubectl get -o json، state در Terraform) اغلب JSON است.
سبک block در برابر flow
سبک block هر کلید و آیتم فهرست را در خط خودش قرار میدهد و انتخاب مرسوم برای فایلهای پیکربندی است. سبک flow مانند JSON از {} و [] درونخطی استفاده میکند و ساختارهای کوچک انتهایی را فشرده نگه میدارد. «Flow از سطح 2» دو سطح بالایی را به سبک block نگه میدارد و هر چیز عمیقتر را درونخطی میکند، که برای فهرستهای طولانی از اشیای کوچک مانند پورتها یا متغیرهای محیطی خوب کار میکند.
نقلقول امن
رشتههایی که یک پارسر YAML ممکن است اشتباه بخواند بهطور خودکار نقلقول میشوند: مقادیری مانند 'no'، 'on'، '1.0'، 'null'، رشتههایی که با * یا & شروع میشوند و رشتههایی که : دارند. اگر راهنمای سبک شما نقلقول همهٔ رشتهها را الزامی میداند، همیشه تکی یا همیشه دوتایی را انتخاب کنید.
نکات YAML 1.1 در برابر 1.2
این مبدل از YAML 1.2، مشخصات فعلی، پیروی میکند. بسیاری از ابزارهای قدیمیتر (PyYAML، Psych در Ruby، برخی نسخههای Kubernetes و Ansible) هنوز YAML 1.1 را میخوانند که قواعدش متفاوت است:
- مشکل نروژ: در YAML 1.1،
country: noبه معنایfalseاست، بنابراین کد کشور نروژ یعنیNOناپدید میشود. همین موضوع برایyes،on،off،yوnصادق است. YAML 1.2 فقطtrueوfalseرا بولی در نظر میگیرد. - اعداد اکتال:
0755در 1.1 اکتال است اما در 1.2 یک عدد دهدهی ساده است و 1.2 از0o755استفاده میکند. برای اطمینان، مجوزهای فایل را نقلقول کنید. - اعداد شصتگانی: در 1.1،
22:30ممکن است به عدد 1350 تجزیه شود. زمانها و نگاشت پورتها مانند"8080:80"را نقلقول کنید.
جهت JSON → YAML رشتههای مبهم ('no'، 'on'، 'y') را بهطور خودکار نقلقول میکند، بنابراین YAML تولیدشده در هر دو نسخه یکسان خوانده میشود.
پرسشهای متداول
آیا تبدیل بدون اتلاف است؟
چرا برخی رشتهها نقلقول دارند و برخی نه؟
'yes'، '123' یا رشتههایی با کاراکتر ویژه. بقیه برای خوانایی ساده باقی میمانند.آیا میتوانم به خروجی کامنت اضافه کنم؟
# comments اضافه کنید.