YAML سے JSON کنورٹر

YAML (Kubernetes manifests، Docker Compose، CI کنفیگز) پیسٹ کریں اور فوراً صاف JSON حاصل کریں۔ ایررز ایک پوائنٹر کے ساتھ بالکل درست لائن دکھاتے ہیں۔

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

JSON آؤٹ پٹ

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

  1. YAML پہلے خانے میں پیسٹ کریں یا .yaml/.yml فائل کھولیں۔
  2. ٹائپ کرتے ہی JSON آؤٹ پٹ خانے میں ظاہر ہوتا ہے۔ آؤٹ پٹ کے لیے 2 اسپیس، 4 اسپیس یا ٹیب منتخب کریں۔
  3. کیز کو حروفِ تہجی کی ترتیب میں لگانے کے لیے کیز ترتیب دیں پر نشان لگائیں۔ یہ کنفیگز کا موازنہ کرتے وقت مدد کرتا ہے۔
  4. اگر YAML غلط ہو تو سٹیٹس بار لائن اور کالم دکھاتا ہے، اور مسئلے والی لائنیں اس کے نیچے ^ نشان کے ساتھ ظاہر ہوتی ہیں۔
  5. JSON کاپی یا ڈاؤن لوڈ کریں، یا اسے واپس YAML میں بدلنے کے لیے ادل بدل دبائیں۔

YAML کیسے JSON میں بدلتا ہے

JSON، YAML 1.2 کا ذیلی سیٹ ہے، اس لیے ہر YAML mapping ایک JSON آبجیکٹ بنتی ہے، ہر sequence ایک ارے، اور scalars سٹرنگز، نمبرز، بولینز یا null بنتے ہیں۔ صرف YAML والی خصوصیات تبدیلی کے دوران حل ہو جاتی ہیں:

  • کمنٹس (# …) ہٹا دیے جاتے ہیں، کیونکہ JSON میں کمنٹس نہیں ہوتے۔
  • Anchors اور aliases (&base، *base، <<: *base) مکمل نقول میں پھیلا دیے جاتے ہیں۔
  • ٹائم سٹیمپس جیسے 2024-01-02 ISO 8601 سٹرنگز بن جاتے ہیں۔
  • ملٹی لائن سٹرنگز (| literal اور > folded بلاکس) \n ایسکیپس والی عام سٹرنگز بن جاتی ہیں۔

ملٹی ڈاکیومنٹ YAML

ایک فائل میں --- سے الگ کیے گئے کئی YAML ڈاکیومنٹس ہو سکتے ہیں، جیسا کہ Kubernetes manifests میں عام ہے۔ JSON میں اس کا کوئی متبادل نہیں، اس لیے کنورٹر ہر ڈاکیومنٹ کے لیے ایک element والا JSON ارے لوٹاتا ہے اور سٹیٹس بار میں یہ بتاتا ہے۔ آخر میں اکیلا --- نظر انداز ہو جاتا ہے۔

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 دونوں ورژنز میں ایک جیسا پڑھا جاتا ہے۔

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

کیا میرا YAML کہیں اپ لوڈ ہوتا ہے؟
نہیں۔ پارسنگ آپ کے براؤزر میں اوپن سورس js-yaml لائبریری سے ہوتی ہے۔ سیکرٹس یا اندرونی ہوسٹ نیمز والی کنفیگز کبھی آپ کی مشین سے باہر نہیں جاتیں۔
میرا YAML «bad indentation» کے ساتھ کیوں ناکام ہوتا ہے؟
YAML میں nesting اسپیسز سے طے ہوتی ہے، اور انڈینٹیشن کے لیے ٹیبز کی اجازت نہیں۔ یقینی بنائیں کہ ہم سطح کیز بالکل ایک سیدھ میں ہوں اور فہرست آئٹمز (-) اپنی parent کی کے نیچے یکساں انڈینٹ ہوں۔
YAML کمنٹس کا کیا ہوتا ہے؟
وہ ہٹا دیے جاتے ہیں۔ JSON میں کمنٹ سنٹیکس نہیں ہے، اس لیے کمنٹس منتقل نہیں ہو سکتے۔ واپس YAML میں تبدیل کرنے سے وہ بحال نہیں ہوں گے۔
<code>no</code> سٹرنگ کیوں رہا؟
یہ ٹول YAML 1.2 کی پیروی کرتا ہے، جہاں صرف true/false بولینز ہیں۔ پرانے YAML 1.1 پارسرز no، yes، on اور off کو بولینز میں بدل دیتے (یعنی «ناروے کا مسئلہ»)۔
کیا میں کئی resources والا Kubernetes manifest تبدیل کر سکتا ہوں؟
جی ہاں۔ --- سے الگ ہر resource آؤٹ پٹ JSON ارے کا ایک element بنتا ہے، جو jq یا kubectl apply -f - کے لیے تیار ہے، جو JSON فہرستیں بھی قبول کرتا ہے۔

متعلقہ ٹولز