YAML به مبدل JSON
تبدیل سریع و ایمن YAML به JSON. ایده آل برای فایل های پیکربندی و تجزیه و تحلیل داده ها.
تبدیل سریع و ایمن YAML به JSON. ایده آل برای فایل های پیکربندی و تجزیه و تحلیل داده ها.
YAML و JSON فرمت های نزدیک به هم هستند - JSON از نظر فنی زیرمجموعه ای دقیق از YAML 1.2 است - و تبدیل بین آنها معمولاً ساده است. YAML ویژگیهای انسان دوستانهای را اضافه میکند که JSON فاقد آن است: نظرات، رشتههای چند خطی بدون فرار، لنگر و ارجاعات مستعار، نقلقولهای انعطافپذیرتر، و ساختار مبتنی بر تورفتگی که شبیه طرحبندی سند طبیعی است. این امر YAML را به گزینه محبوب برای فایلهای پیکربندی تبدیل میکند (مانیفستهای Kubernetes، گردشهای کاری GitHub Actions، Docker Compose) در حالی که JSON بر بارهای API غالب است.
تبدیل YAML به JSON معمولاً به معنای کنار گذاشتن امکانات اضافی YAML برای انسان در ازای قالبی است که ماشینها راحتتر تجزیه و تحلیل میکنند و این زبان APIهای HTTP است. نظرات حذف می شوند (JSON هیچ کدام ندارد). ارجاعات لنگر در مقادیر مرجع خود حل می شوند. رشته های چند خطی به رشته های استاندارد JSON با خطوط جدید تعبیه شده جمع می شوند.
این مبدل YAML را با استفاده از js-yaml، پرکاربردترین کتابخانه YAML در جاوا اسکریپت، تجزیه می کند. خروجی با استفاده از JSON.stringify با تورفتگی اختیاری ایجاد می شود. این تبدیل تمام نحو استاندارد YAML 1.2 از جمله سبک جریان، سبک بلوک، اسکالرها، دنبالهها، نگاشتها، لنگرها، نامهای مستعار و انواع برچسب استاندارد را مدیریت میکند.
اکثر APIها و بسیاری از محیط های برنامه نویسی از JSON انتظار دارند. هنگام ادغام با کد یا سرویس هایی که فقط JSON را می پذیرند، فایل های پیکربندی نوشته شده در YAML باید به JSON تبدیل شوند. ابزار برای JSON نیز فراوان است: jq، JSON Path، JSON Schema، و اکوسیستم گسترده ای از اعتبار سنجی ها و ترانسفورماتورها همگی ورودی JSON را فرض می کنند.
JSON همچنین از جهاتی که YAML نیست مبهم است. انعطافپذیری YAML باعث ایجاد شگفتیهای تجزیه میشود - رشتههایی مانند تجزیه «نه» بهعنوان اشتباه بولی در YAML 1.1، رشتههای نسخه تجزیه بهعنوان شناور، خطاهای تورفتگی که تغییرات ساختاری بیصدا ایجاد میکنند. تبدیل به JSON داده ها را به شکلی با ابهام کمتر مسدود می کند.
YAML را جایگذاری کنید، JSON دریافت کنید.
js-yaml YAML 1.2 را با پشتیبانی اختیاری از ویژگیهای YAML 1.1 پیادهسازی میکند. تجزیه کننده یک درخت شی جاوا اسکریپت را با استفاده از انواع بومی تولید می کند: اعداد، رشته ها، بولی ها، تهی، آرایه ها و اشیاء ساده.
JSON.stringify درخت شی را به JSON سریال می کند. تورفتگی اختیاری خروجی زیبا و چاپ شده تولید می کند. بدون آن نتیجه JSON تک خطی فشرده است. مقادیر ویژه (NaN، Infinity، undefined) JSON معتبر نیستند. مبدل آنها را وادار می کند که در صورت وجود، صفر شوند.
موارد لبه: مهرهای زمانی YAML به رشته های ISO-8601 در JSON تبدیل می شوند. داده های باینری YAML (با کدگذاری پایه 64) به یک رشته تبدیل می شود. لنگرها و نامهای مستعار به مقادیر تکراری در JSON تفکیک میشوند، زیرا JSON هیچ نحو مرجعی ندارد.