JSON سے YAML کنورٹر

JSON کو Kubernetes، Docker Compose، GitHub Actions یا Ansible کے لیے صاف اور انسان دوست YAML میں بدلیں، انڈینٹیشن، انداز اور کوٹس پر مکمل کنٹرول کے ساتھ۔

آپ کے براؤزر میں چلتا ہےسائن اپ کی ضرورت نہیںکچھ اپ لوڈ نہیں ہوتا

JSON آؤٹ پٹ

JSON سے YAML استعمال کرنے کا طریقہ

  1. JSON پہلے خانے میں پیسٹ کریں یا .json فائل کھولیں۔
  2. ٹائپ کرتے ہی YAML آؤٹ پٹ خانے میں ظاہر ہوتا ہے۔
  3. انڈینٹ (2 یا 4 اسپیس) اور انداز منتخب کریں: block (ہر کی ایک لائن میں) یا کسی خاص nesting لیول سے flow ({a: 1}/[x, y])۔
  4. کوٹنگ کا انداز منتخب کریں اور حروفِ تہجی کی ترتیب چاہیں تو کیز ترتیب دیں پر نشان لگائیں۔
  5. YAML کاپی یا ڈاؤن لوڈ کریں۔ غلط JSON اس کی لائن، کالم اور ممکنہ وجہ کے ساتھ رپورٹ ہوتا ہے۔

JSON کو YAML میں کیوں تبدیل کریں؟

JSON مشینوں اور APIs کے لیے بہترین ہے، لیکن YAML انسانوں کے لیے پڑھنا اور ایڈٹ کرنا آسان ہے: نہ بریسز، نہ لازمی کوٹس، اور کمنٹس کی سپورٹ۔ زیادہ تر انفراسٹرکچر ٹولز، بشمول Kubernetes، Helm، Docker Compose، GitHub Actions، GitLab CI اور Ansible، YAML میں کنفیگر ہوتے ہیں، جبکہ جس ڈیٹا سے آپ شروع کرتے ہیں (API آؤٹ پٹ، kubectl get -o json، Terraform state) وہ اکثر JSON ہوتا ہے۔

Block بمقابلہ flow انداز

Block انداز ہر کی اور فہرست آئٹم کو اپنی لائن میں رکھتا ہے اور کنفیگ فائلوں کے لیے روایتی انتخاب ہے۔ Flow انداز JSON کی طرح اِن لائن {} اور [] استعمال کرتا ہے اور چھوٹے آخری سٹرکچرز کو کمپیکٹ رکھتا ہے۔ «لیول 2 سے Flow» اوپر کے دو لیولز کو block انداز میں رکھتا ہے اور اس سے گہری ہر چیز کو اِن لائن کرتا ہے، جو ports یا env vars جیسے چھوٹے آبجیکٹس کی لمبی فہرستوں کے لیے اچھا کام کرتا ہے۔

محفوظ کوٹنگ

جن سٹرنگز کو YAML پارسر غلط پڑھ سکتا ہے وہ خودکار طور پر کوٹ ہوتی ہیں: جیسے 'no'، 'on'، '1.0'، 'null'، شروع میں * یا & والی سٹرنگز، اور : پر مشتمل سٹرنگز۔ اگر آپ کی سٹائل گائیڈ ہر سٹرنگ کو کوٹ کرنے کا تقاضا کرتی ہے تو ہمیشہ سنگل یا ہمیشہ ڈبل منتخب کریں۔

YAML 1.1 بمقابلہ 1.2 کی الجھنیں

یہ کنورٹر موجودہ سپیک YAML 1.2 کی پیروی کرتا ہے۔ بہت سے پرانے ٹولز (PyYAML، Ruby کا Psych، Kubernetes اور Ansible کے کچھ ورژن) اب بھی YAML 1.1 پڑھتے ہیں، جہاں اصول مختلف ہیں:

  • ناروے کا مسئلہ: YAML 1.1 میں country: no کا مطلب false ہے، اس لیے ناروے کا کنٹری کوڈ NO غائب ہو جاتا ہے۔ یہی yes، on، off، y اور n کے ساتھ ہوتا ہے۔ YAML 1.2 صرف true اور false کو بولین مانتا ہے۔
  • Octal نمبرز: 0755 ورژن 1.1 میں octal ہے لیکن 1.2 میں سادہ اعشاری، جو 0o755 استعمال کرتا ہے۔ احتیاطاً فائل موڈز کو کوٹ کریں۔
  • Sexagesimal نمبرز: 1.1 میں 22:30 نمبر 1350 کے طور پر پارس ہو سکتا ہے۔ اوقات اور پورٹ میپنگز جیسے "8080:80" کو کوٹ کریں۔

JSON → YAML سمت مبہم سٹرنگز ('no'، 'on'، 'y') کو خودکار طور پر کوٹ کرتی ہے، اس لیے بننے والا YAML دونوں ورژنز میں ایک جیسا پڑھا جاتا ہے۔

اکثر پوچھے جانے والے سوالات

کیا تبدیلی بغیر نقصان کے ہے؟
جی ہاں۔ ہر JSON دستاویز درست YAML 1.2 ہے، اور بنایا گیا YAML واپس بالکل اسی ڈیٹا میں پارس ہوتا ہے۔ آپ ادل بدل دبا کر چیک کر سکتے ہیں۔
کچھ سٹرنگز کوٹ میں کیوں ہیں اور کچھ نہیں؟
صرف ضرورت پر کے ساتھ کوٹس صرف وہاں لگتے ہیں جہاں بغیر کوٹ کی ویلیو کا مطلب بدل جائے، مثلاً 'yes'، '123' یا خاص کریکٹرز والی سٹرنگز۔ باقی سب پڑھنے میں آسانی کے لیے سادہ رہتا ہے۔
کیا میں آؤٹ پٹ میں کمنٹس شامل کر سکتا ہوں؟
JSON میں کمنٹس نہیں ہوتے، اس لیے تبدیل کرنے کو کچھ نہیں، لیکن کاپی کرنے کے بعد آپ YAML میں # comments شامل کر سکتے ہیں۔
کیا کیز کی ترتیب بدلتی ہے؟
نہیں۔ کیز اپنی JSON ترتیب برقرار رکھتی ہیں جب تک آپ کیز ترتیب دیں پر نشان نہ لگائیں۔
کیا میرا ڈیٹا پرائیویٹ ہے؟
جی ہاں۔ کنورٹر آپ کے براؤزر میں چلتا ہے اور آپ کے ان پٹ کے ساتھ کوئی نیٹ ورک ریکوئسٹ نہیں کرتا۔

متعلقہ ٹولز