تبدیل JSON به YAML
JSON را به YAML تبدیل کنید تا دیگران بتوانند آن را بخوانند، بازبینی کنند و برایش توضیح بنویسند. فایلهای .json را بارگذاری کنید و فایل .yaml تورفته با همان کلیدها، مقادیر و ترتیب بگیرید که مستقیم در مخزن کد قرار میگیرد.
مبدل داده
یا فایلهای CSV, TSV, TXT … را اینجا رها کنید ·
حداکثر 95 MB برای هر فایل· تا 20 فایل· حذف پس از 30 دقیقه
فایلها روی سرورهای ما پردازش میشوند و پس از 30 دقیقه حذف میشوند.
نویسهای که ستونها را در فایلهای CSV و متنی جدا میکند، هم برای خواندن و هم برای نوشتن. حالت خودکار آن را از ورودی تشخیص میدهد و با ویرگول مینویسد.
UTF-8 برای همه زبانها کار میکند. اگر Excel در ویندوز هنگام باز کردن CSV نویسههای اروپایی یا آسیایی را خراب نشان میدهد، UTF-8 با BOM را انتخاب کنید.
ورودی Excel، ODS و Numbers: فقط برگه اول تبدیل شود یا همه برگهها (برای هر برگه یک CSV داخل ZIP، یا برای هر برگه یک کلید JSON).
نام زبانه برگه در صفحهگسترده جدید، حداکثر 31 نویسه.
آرایهای از شیءها برای هر ردیف از نام ستونها بهعنوان کلید استفاده میکند؛ آرایهای از آرایهها فشردهتر است و سرستون را بهعنوان آرایه اول نگه میدارد.
نام عنصر بیرونی که همه ردیفها را در بر میگیرد؛ هر ردیف داخل آن به یک <row> تبدیل میشود.
در دستورهای CREATE TABLE و INSERT استفاده میشود. فقط حروف انگلیسی، ارقام و زیرخط.
نقلقولگذاری و نوع ستونها بین پایگاههای داده کمی فرق دارد؛ همان را که میخواهید در آن وارد کنید انتخاب کنید.
سلولهای تاریخ را در یک قالب بازنویسی میکند. ISO (2026-10-18) برای پایگاه داده و کد امنترین است؛ «بدون تغییر» آنها را همانطور که در منبع هستند نگه میدارد.
نحوه استفاده از این ابزار
- 1
فایلهای JSON را اضافه کنید
پاسخهای API، تنظیمات خروجیگرفتهشده یا مانیفستهای تولیدشده را بهصورت فایل .json بارگذاری کنید؛ حداکثر 20 فایل و هر کدام تا 95 MB. هر فایل باید دقیقاً یک مقدار JSON معتبر داشته باشد.
- 2
تنظیمات پیشفرض را تغییر ندهید
YAML از قبل در بخش تبدیل به انتخاب شده است. برای فایل پیکربندی نیازی به تغییر چیز دیگری نیست؛ خروجی با تورفتگی دو فاصلهای نوشته میشود.
- 3
تبدیل کنید و در مخزن ثبت کنید
روی تبدیل به YAML بزنید، فایلهای .yaml را دانلود کنید، هرجا که خوانندهی بعدی به توضیح نیاز دارد کامنت اضافه کنید و کامیت کنید.
چطور JSON را به YAML تبدیل کنم؟
فایل .json را بارگذاری کنید و تبدیل به YAML را بزنید. اشیا به بلوکهای تورفتهی key: value، آرایهها به فهرستهایی با خط تیره تبدیل میشوند و رشتههایی که YAML ممکن است اشتباه بخواند نقلقولشان را حفظ میکنند.
چرا JSON را برای فایلهای پیکربندی به YAML تبدیل کنیم
بیشتر JSONها را نرمافزار تولید میکند: پاسخ یک API، خروجی تنظیمات یا محصول یک مولد. بیشتر YAMLها را آدمها نگهداری میکنند. این تبدیل معمولاً لحظهای است که داده از خروجی ماشین به چیزی تبدیل میشود که یک تیم مالک آن است، مثل مانیفست استقرار در Git، یک پایپلاین CI یا مجموعهای از متغیرهای Ansible.
مثال رایج: یک API ابری را فراخوانی میکنید، توصیف 200 خطی JSON از یک منبع میگیرید و میخواهید آن را بهصورت کد زیرساخت نگه دارید. تبدیل، فایلی بدون آکولاد و ویرگول میدهد که در آن تغییر یک خط، تفاوتی یکخطی ایجاد میکند و میتوانید مقادیر عجیب را در کامنت توضیح دهید. همین دربارهی فیکسچرهای تست و فایلهای ترجمه که غیربرنامهنویسان ویرایش میکنند هم صدق میکند. اگر بهجای آن جدولی ساده برای صفحهگسترده یا گزارش لازم دارید، JSON به CSV مناسبتر است.
ابزارهایی که فایل پیکربندی آنها YAML است
| سازمان | الزام | منبع |
|---|---|---|
| GitHub Actions | گردشکارها در .github/workflows بهصورت فایلهای .yml یا .yaml قرار میگیرند | GitHub Docs |
| GitLab CI/CD | پایپلاین در فایل .gitlab-ci.yml در ریشهی مخزن تعریف میشود | GitLab Docs |
| Docker Compose | سرویسها در compose.yaml (پیشتر docker-compose.yml) توصیف میشوند | Docker Docs |
| Ansible | پلیبوکها و فایلهای متغیر با YAML نوشته میشوند | Ansible Docs |
| Kubernetes | مانیفستها JSON یا YAML میپذیرند؛ مستندات و چارتهای Helm از YAML استفاده میکنند | Kubernetes |
نمونهٔ تبدیل JSON به YAML با مقادیر دردسرساز
name: api version: "1.10" debug: false tags: - وب - eu country: "NO"
مزایای YAML
- کامنت با #
- تفاوتهای کوتاهتر در بازبینی کد
- بدون آکولاد، ویرگول یا نقلقول در بیشتر خطوط
- متن چندخطی با اسکالرهای بلوکی |
نکات قابل توجه
- تورفتگی معنا دارد، پس یک فاصلهی اضافی ساختار را عوض میکند
- تب برای تورفتگی مجاز نیست
- رشتههای بدون نقلقول ممکن است عدد یا بولین خوانده شوند
- تجزیهگرهای کندتر و کمتر یکنواخت نسبت به JSON
این مثال نشان میدهد چرا جایگزینی سادهی آکولادها کافی نیست. نسخهی 1.10 در JSON یک رشته است؛ اگر در YAML بدون نقلقول نوشته شود، عدد 1.1 خوانده میشود. NO، کد ISO نروژ، در تجزیهگرهای YAML 1.1 مثل PyYAML بهصورت false خوانده میشود. هر دو نقلقول خود را حفظ میکنند، در حالی که عددها و بولینهای واقعی بدون نقلقول میمانند.
مقایسهٔ JSON و YAML
JSON
نشانهگذاری شیء جاوااسکریپت (JSON)
JSON یک فرمت متنی سبک برای دادههای ساختاریافته است که Douglas Crockford در اوایل دهه 2000 آن را رایج کرد و با عنوان RFC 8259 و ECMA-404 استاندارد شد. اشیا، آرایهها، رشتهها، اعداد، مقادیر بولی و null را با نحوی ساده و خوانا نمایش میدهد. این فرمت پیشفرض APIهای وب، فایلهای پیکربندی و تبادل داده بین برنامهها در تقریباً همه زبانهای برنامهنویسی است. توضیحات، تاریخ یا طرحواره ندارد و فایلهای بزرگ تودرتو بدون نمایشگر سخت خوانده میشوند.
- فشردهسازی
- –
- شفافیت
- –
- انیمیشن
- –
- سال معرفی
- 2001 · Douglas Crockford
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
وقتی دادهی تولیدشده یا خروجی API باید به فایل پیکربندیای تبدیل شود که انسانها نگهداری میکنند، در پولریکوئست بازبینی میکنند و با کامنت توضیح میدهند، JSON را به YAML تبدیل میکنند.
پرسشهای رایج دربارهٔ تبدیل JSON به YAML
آیا JSON بهخودیخود YAML معتبر است؟
در YAML 1.2 بله: نسخهی سال 2009 طوری نوشته شد که هر سند JSON یک سند YAML هم باشد. میتوانید JSON را در یک فایل .yaml بگذارید و بیشتر ابزارها آن را میپذیرند. هدف از تبدیل، خوانایی است: سبک بلوکی بدون آکولاد، نقلقول و ویرگول همان چیزی است که بازبینان و نگهدارندهی بعدی انتظار دارند.
چرا برخی مقادیر در YAML داخل نقلقول قرار میگیرند؟
چون بدون نقلقول، YAML آنها را از نوعی دیگر میخواند. رشتهی نسخهای مثل 1.10 به عدد 1.1 تبدیل میشود و yes یا off در تجزیهگرهای قدیمیتر میتواند بولین شود. رشتههایی که شبیه عدد، تاریخ یا بولیناند برای ماندن بهعنوان رشته نقلقول لازم دارند، پس تبدیل دقیق آنها را حفظ میکند.
آیا پس از تبدیل میتوانم توضیح (کامنت) اضافه کنم؟
بله، و این یکی از دلایل رایج تبدیل است. علامت # و پس از آن یادداشتتان را در انتهای یک خط یا در خطی جدا بنویسید. JSON راهی برای توضیح دلیل تنظیم یک مقدار نداشت؛ YAML دارد و بازبینی و تحویل کار را آسانتر میکند.
چرا YAML من با خطای کاراکتر Tab اجرا نمیشود؟
مشخصات YAML تب را برای تورفتگی ممنوع کرده است؛ فقط فاصله معتبر است. مبدل فاصله مینویسد، اما ویرایشگری که روی درج تب تنظیم شده باشد ممکن است در ویرایش بعدی فایل را خراب کند. ویرایشگر خود را برای فایلهای .yaml روی استفاده از فاصله تنظیم کنید.
آیا Kubernetes مانیفست تبدیلشده را میپذیرد؟
kubectl هم JSON و هم YAML را میخواند، پس داده در هر دو حالت یکی است؛ نسخهی YAML فقط همان چیزی است که بیشتر مستندات، چارتهای Helm و بازبینیهای کد استفاده میکنند. اگر بعداً برای jq یا فراخوانی API دوباره JSON لازم شد، تبدیل YAML به JSON آن را برمیگرداند.
- تبدیل YAML به JSONفایلهای .yaml و .yml را برای APIها، اعتبارسنجها و ابزارهای JSONخوان به JSON تبدیل کنید. خروجی مرتب، تا 20 فایل، حذف فایلها پس از 30 دقیقه.
- تبدیل JSON به XMLتبدیل آنلاین JSON به XML: کلیدها عنصر میشوند، آرایهها عنصرهای تکراری، همه درون تگ ریشهای با نام دلخواه شما. خروجی مرتب، بدون ثبتنام.
- تبدیل JSON به CSVتبدیل JSON یا JSON Lines به CSV: هر شیء یک سطر، فیلدهای تودرتو در ستونها، UTF-8 با BOM برای نمایش درست حروف در Excel. ۲۰ فایل با هم.
- تبدیل XML به JSONتبدیل XML به JSON خوانا: ویژگیها کلیدهای @ میشوند، تگهای تکراری آرایه و متن دستنخورده میماند. برای پاسخهای SOAP، فیدها و خروجیهای قدیمی.
- تبدیل JSON به Base64فایل JSON را به یک خط Base64 برای Secretهای Kubernetes، متغیرهای CI، بدنهٔ API و توکنها تبدیل کنید. کاملاً برگشتپذیر، با data URI اختیاری.
- تبدیل JSON به اکسلتبدیل JSON یا JSON Lines به شیت اکسل XLSX: کلیدها سرستون و هر رکورد یک ردیف میشود. تا 20 فایل در هر دسته، بدون ثبتنام.