YAML سے JSON کنورٹر
تیز اور محفوظ YAML سے JSON کی تبدیلی۔ ترتیب فائلوں اور ڈیٹا کے تجزیہ کے لئے کامل.
تیز اور محفوظ YAML سے JSON کی تبدیلی۔ ترتیب فائلوں اور ڈیٹا کے تجزیہ کے لئے کامل.
YAML اور JSON قریب سے متعلقہ فارمیٹس ہیں — JSON تکنیکی طور پر YAML 1.2 کا ایک سخت ذیلی سیٹ ہے — اور ان کے درمیان تبدیل ہونا عام طور پر سیدھا ہوتا ہے۔ YAML انسانی دوستانہ خصوصیات کو شامل کرتا ہے جن کا JSON میں فقدان ہے: تبصرے، فرار کے بغیر ملٹی لائن سٹرنگز، اینکر اور عرفی حوالہ جات، زیادہ لچکدار کوٹنگ، اور انڈینٹیشن پر مبنی ڈھانچہ جو قدرتی دستاویز کے لے آؤٹ سے مشابہ ہے۔ یہ YAML کو کنفیگریشن فائلوں کے لیے مقبول انتخاب بناتا ہے (Kubernetes manifests، GitHub Actions workflows، Docker Compose) جبکہ JSON API پے لوڈز پر غالب ہے۔
YAML کو JSON میں تبدیل کرنے کا مطلب عام طور پر YAML کے انسان دوست ایکسٹرا کو اس فارمیٹ کے بدلے میں ترک کرنا ہے جسے مشینیں زیادہ آسانی سے پارس کرتی ہیں اور یہ HTTP APIs کی زبان ہے۔ تبصرے چھوڑ دیے گئے ہیں (JSON کے پاس کوئی نہیں ہے)۔ اینکر حوالہ جات کو ان کی ریفرنٹ اقدار میں حل کیا جاتا ہے۔ ملٹی لائن سٹرنگز ایمبیڈڈ نئی لائنوں کے ساتھ معیاری JSON سٹرنگز پر سمٹ جاتی ہیں۔
یہ کنورٹر js-yaml کا استعمال کرتے ہوئے YAML کو پارس کرتا ہے، جو JavaScript میں سب سے زیادہ استعمال ہونے والی YAML لائبریری ہے۔ JSON.stringify کو اختیاری انڈینٹیشن کے ساتھ استعمال کرکے آؤٹ پٹ تیار کیا جاتا ہے۔ تبدیلی تمام معیاری YAML 1.2 نحو کو ہینڈل کرتی ہے جس میں فلو اسٹائل، بلاک اسٹائل، اسکیلرز، سیکوینسز، میپنگز، اینکرز، عرفی نام، اور معیاری ٹیگ کی اقسام شامل ہیں۔
زیادہ تر APIs اور بہت سے پروگرامنگ ماحول JSON کی توقع کرتے ہیں۔ YAML میں لکھی گئی کنفیگریشن فائلوں کو JSON میں تبدیل کرنے کی ضرورت ہوتی ہے جب کوڈ یا خدمات کے ساتھ انضمام ہوتا ہے جو صرف JSON کو قبول کرتی ہیں۔ JSON کے لیے ٹولنگ بھی بہت زیادہ ہے: jq، JSON پاتھ، JSON سکیما، اور توثیق کرنے والوں اور ٹرانسفارمرز کا ایک وسیع ماحولیاتی نظام سبھی JSON ان پٹ کو فرض کرتے ہیں۔
JSON ان طریقوں سے بھی غیر مبہم ہے جس طرح YAML نہیں ہے۔ YAML کی لچک پارسنگ سرپرائزز پیدا کرتی ہے — YAML 1.1 میں بولین فالس کے طور پر 'no' پارس کرنے والی سٹرنگز، ورژن سٹرنگز فلوٹس کے طور پر پارس ہو رہی ہیں، انڈینٹیشن کی خرابیاں خاموش ساختی تبدیلیاں پیدا کرتی ہیں۔ JSON میں تبدیل کرنا ڈیٹا کو کم مبہم شکل میں منجمد کر دیتا ہے۔
YAML پیسٹ کریں، JSON حاصل کریں۔
js-yaml YAML 1.2 کو YAML 1.1 quirks کے لیے اختیاری تعاون کے ساتھ نافذ کرتا ہے ('no'-as-false مسئلہ، 0o سابقہ کے بغیر آکٹل نمبرز)۔ تجزیہ کار مقامی اقسام کا استعمال کرتے ہوئے جاوا اسکرپٹ آبجیکٹ ٹری تیار کرتا ہے: نمبرز، سٹرنگز، بولین، نل، اری اور سادہ آبجیکٹ۔
JSON.stringify آبجیکٹ ٹری کو JSON پر سیریلائز کرتا ہے۔ اختیاری انڈینٹیشن خوبصورت پرنٹ شدہ آؤٹ پٹ پیدا کرتا ہے۔ اس کے بغیر نتیجہ کمپیکٹ سنگل لائن JSON ہے۔ خاص قدریں (NaN، Infinity، undefined) درست JSON نہیں ہیں؛ کنورٹر ان کو جبر کرتا ہے جہاں موجود ہو اسے کالعدم کر دیتا ہے۔
ایج کیسز: YAML ٹائم سٹیمپ JSON میں ISO-8601 سٹرنگ بن جاتے ہیں۔ YAML بائنری ڈیٹا (base64-encoded) ایک تار بن جاتا ہے۔ اینکرز اور عرفی ناموں کو JSON میں ڈپلیکیٹ اقدار میں حل کیا جاتا ہے، کیونکہ JSON کا کوئی حوالہ نحو نہیں ہے۔