UltKit

تبدیل YAML به JSON

فایل‌های پیکربندی YAML، مشخصات OpenAPI و فایل‌های CI را به JSON تبدیل کنید تا هر پارسر، API یا اعتبارسنج اسکیما آن را بخواند. فایل‌های .yaml یا .yml را بارگذاری کنید و JSON مرتب و تورفته دانلود کنید.

مبدل داده

یا فایل‌های CSV, TSV, TXT … را اینجا رها کنید ·

حداکثر 95 MB برای هر فایل· تا 20 فایل· حذف پس از 30 دقیقه

خروجی

فایل‌ها روی سرورهای ما پردازش می‌شوند و پس از 30 دقیقه حذف می‌شوند.

نحوه استفاده از این ابزار

  1. 1

    فایل‌های YAML را بارگذاری کنید

    فایل‌های .yaml یا .yml را اضافه کنید؛ حداکثر 20 فایل در هر بار و هر کدام تا 95 MB. نام‌های اصلی حفظ می‌شوند و فایل‌های JSON با همان نام و پسوند جدید ساخته می‌شوند.

  2. 2

    حالت تورفته یا فشرده را انتخاب کنید

    گزینهٔ قالب‌بندی خوانا روشن است و JSON را برای خواندن و بازبینی کد با تورفتگی می‌نویسد. برای فایل تک‌خطی که بخواهید در بدنهٔ درخواست جایگذاری کنید، آن را در تنظیمات پیشرفته خاموش کنید.

  3. 3

    تبدیل کنید و به کار ببرید

    روی تبدیل به JSON بزنید، فایل را دانلود کنید و آن را به API، اعتبارسنج یا اسکریپتی که به آن نیاز داشت بدهید.

چرا توسعه‌دهندگان YAML را به JSON تبدیل می‌کنند

YAML برای انسان نوشته شده است: به‌جای آکولاد تورفتگی، توضیحات و بدون نقل‌قول برای بیشتر رشته‌ها. به همین دلیل فرمت مانیفست‌های Kubernetes، گردش‌کارهای GitHub Actions، فایل‌های Docker Compose و مشخصه‌های OpenAPI است که تیم‌ها با دست ویرایش می‌کنند. JSON برای برنامه‌ها نوشته شده است. هر زبانی در کتابخانهٔ استاندارد خود تجزیه‌گر JSON دارد، مرورگرها آن را به‌صورت بومی می‌خوانند و بیشتر APIهای HTTP چیز دیگری نمی‌پذیرند.

پس تبدیل در مرز دو سیستم رخ می‌دهد. مهندس پلتفرم مانیفست را به jq می‌دهد که فقط JSON می‌خواند. توسعه‌دهندهٔ بک‌اند مشخصهٔ OpenAPI را برای تولیدکنندهٔ کدی می‌فرستد که JSON می‌خواهد. تستر داده‌های آزمایشی YAML را در مجموعه‌تست جاوااسکریپت بارگذاری می‌کند. در همهٔ این موارد YAML منبع اصلی می‌ماند و JSON خروجی ساخت است. برای مجموعه‌ای از فیدها یا خروجی‌ها به‌جای پیکربندی، تبدیل XML به JSON فرمت نشانه‌گذاری قدیمی‌تر را به همین شکل تبدیل می‌کند.

YAML و JSON چگونه در کنار هم شکل گرفتند

نخستین پیشنهاد YAML توسط Clark Evans
2001
YAML 1.2 فرمت JSON را زیرمجموعهٔ YAML کرد
2009
RFC 8259، استاندارد فعلی JSON
2017
انتشار بازنگری YAML 1.2.2
2021

ویژگی‌های خاص YAML در JSON چه می‌شوند

لنگر (&defaults) و ارجاع‌هایش (*defaults) اجازه می‌دهند YAML یک بلوک را دوباره استفاده کند. JSON ارجاع ندارد، پس هر ارجاع با نسخهٔ کامل بلوک لنگرشده جایگزین می‌شود.

  • JSON ممکن است به‌طور محسوسی از YAML بلندتر شود
  • کلیدهای ادغام (<<: *defaults) به همین شکل گسترش می‌یابند
یک پیکربندی کوچک YAML به‌صورت JSON خوانا
{
  "service": "billing",
  "replicas": 3,
  "ports": [8080, 9090],
  "env": {
    "LOG_LEVEL": "info",
    "REGION": "NO"
  }
}

مشخصات فرمت‌های YAML و JSON

YAML

YAML

YAML («YAML Ain't Markup Language») قالب داده خوانا برای انسان است که نخستین بار در سال 2001 منتشر شد. به‌جای کروشه و آکولاد از تورفتگی استفاده می‌کند، از توضیحات پشتیبانی می‌کند و ابرمجموعه JSON است. در پیکربندی Docker Compose، Kubernetes، GitHub Actions و بسیاری از برنامه‌ها کاربرد فراوان دارد. وابستگی آن به فاصله‌ها باعث می‌شود با یک فاصله اشتباه خراب شود و برخی مقادیر مانند «no» یا تاریخ‌ها ممکن است غیرمنتظره تفسیر شوند.

فشرده‌سازی
–
شفافیت
–
انیمیشن
–
سال معرفی
2001 · Clark Evans, Ingy döt Net, Oren Ben-Kiki
مبدل YAML

JSON

نشانه‌گذاری شیء جاوااسکریپت (JSON)

JSON یک فرمت متنی سبک برای داده‌های ساختاریافته است که Douglas Crockford در اوایل دهه 2000 آن را رایج کرد و با عنوان RFC 8259 و ECMA-404 استاندارد شد. اشیا، آرایه‌ها، رشته‌ها، اعداد، مقادیر بولی و null را با نحوی ساده و خوانا نمایش می‌دهد. این فرمت پیش‌فرض APIهای وب، فایل‌های پیکربندی و تبادل داده بین برنامه‌ها در تقریباً همه زبان‌های برنامه‌نویسی است. توضیحات، تاریخ یا طرحواره ندارد و فایل‌های بزرگ تودرتو بدون نمایشگر سخت خوانده می‌شوند.

فشرده‌سازی
–
شفافیت
–
انیمیشن
–
سال معرفی
2001 · Douglas Crockford
مبدل JSON

وقتی پیکربندی یا مشخصه‌ای که برای انسان نوشته شده باید به ماشین داده شود، YAML را به JSON تبدیل می‌کنند: درخواست API، اعتبارسنج طرح‌واره یا ابزاری که تجزیه‌گر YAML ندارد.

پرسش‌های متداول تبدیل YAML به JSON

وقتی YAML و JSON داده‌های یکسانی دارند، چرا YAML را به JSON تبدیل کنیم؟

چون بسیاری از ابزارها فقط یکی از این دو را می‌خوانند. خواننده‌های JSON در هر زبان برنامه‌نویسی و هر مرورگری وجود دارند، اما YAML به کتابخانهٔ اضافه نیاز دارد. بدنهٔ درخواست‌های REST API، اعتبارسنج‌های JSON Schema، jq و فایل‌هایی مانند package.json یا manifest.json افزونهٔ مرورگر همگی JSON می‌خواهند.

توضیحات (کامنت‌های) فایل YAML من چه می‌شوند؟

حذف می‌شوند. طبق RFC 8259 در JSON سینتکسی برای توضیحات وجود ندارد و خطوط شروع‌شده با # جایی برای ماندن ندارند. فایل YAML را به‌عنوان منبع مستند نگه دارید و JSON را نسخه‌ای تولیدشده بدانید که هر زمان می‌توان دوباره ساختش.

چرا NO یا off به false تبدیل شد؟

تجزیه‌گرهایی که از YAML 1.1 پیروی می‌کنند yes، no، on و off را مقدار بولی می‌خوانند، بنابراین کد کشوری مثل NO برای نروژ ممکن است false شود. YAML 1.2 مقدار بولی را به true و false محدود می‌کند، اما همهٔ ابزارها از آن پیروی نمی‌کنند. چنین مقادیری را در YAML داخل نقل‌قول بنویسید، مثل "NO"، تا در JSON رشته بمانند.

آیا می‌توانم قالب CloudFormation نوشته‌شده با YAML را تبدیل کنم؟

AWS CloudFormation هر دو فرمت را می‌پذیرد، اما تگ‌های کوتاه مثل !Ref و !GetAtt فقط در YAML وجود دارند. قالب‌های JSON آن‌ها را به‌صورت تابع کامل می‌نویسند، یعنی {"Ref": "MyBucket"} یا {"Fn::GetAtt": [...]}. پیش از تبدیل، تگ‌های کوتاه را به شکل بلند بازنویسی کنید تا قالب JSON معتبر بماند.

چگونه JSON را به YAML تبدیل کنم؟

از تبدیل JSON به YAML استفاده کنید. وقتی پاسخ یک API یا فایلی تولیدشده باید به فایل پیکربندی خوانا در یک مخزن تبدیل شود، معمولاً همین جهت لازم است.