YAML سے JSON کنورٹر
YAML (Kubernetes manifests، Docker Compose، CI کنفیگز) پیسٹ کریں اور فوراً صاف JSON حاصل کریں۔ ایررز ایک پوائنٹر کے ساتھ بالکل درست لائن دکھاتے ہیں۔
آپ کے براؤزر میں چلتا ہےسائن اپ کی ضرورت نہیںکچھ اپ لوڈ نہیں ہوتا
YAML سے JSON استعمال کرنے کا طریقہ
- YAML پہلے خانے میں پیسٹ کریں یا
.yaml/.ymlفائل کھولیں۔ - ٹائپ کرتے ہی JSON آؤٹ پٹ خانے میں ظاہر ہوتا ہے۔ آؤٹ پٹ کے لیے 2 اسپیس، 4 اسپیس یا ٹیب منتخب کریں۔
- کیز کو حروفِ تہجی کی ترتیب میں لگانے کے لیے کیز ترتیب دیں پر نشان لگائیں۔ یہ کنفیگز کا موازنہ کرتے وقت مدد کرتا ہے۔
- اگر YAML غلط ہو تو سٹیٹس بار لائن اور کالم دکھاتا ہے، اور مسئلے والی لائنیں اس کے نیچے
^نشان کے ساتھ ظاہر ہوتی ہیں۔ - JSON کاپی یا ڈاؤن لوڈ کریں، یا اسے واپس YAML میں بدلنے کے لیے ادل بدل دبائیں۔
YAML کیسے JSON میں بدلتا ہے
JSON، YAML 1.2 کا ذیلی سیٹ ہے، اس لیے ہر YAML mapping ایک JSON آبجیکٹ بنتی ہے، ہر sequence ایک ارے، اور scalars سٹرنگز، نمبرز، بولینز یا null بنتے ہیں۔ صرف YAML والی خصوصیات تبدیلی کے دوران حل ہو جاتی ہیں:
- کمنٹس (
# …) ہٹا دیے جاتے ہیں، کیونکہ JSON میں کمنٹس نہیں ہوتے۔ - Anchors اور aliases (
&base،*base،<<: *base) مکمل نقول میں پھیلا دیے جاتے ہیں۔ - ٹائم سٹیمپس جیسے
2024-01-02ISO 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 کہیں اپ لوڈ ہوتا ہے؟
میرا YAML «bad indentation» کے ساتھ کیوں ناکام ہوتا ہے؟
-) اپنی parent کی کے نیچے یکساں انڈینٹ ہوں۔YAML کمنٹس کا کیا ہوتا ہے؟
<code>no</code> سٹرنگ کیوں رہا؟
true/false بولینز ہیں۔ پرانے YAML 1.1 پارسرز no، yes، on اور off کو بولینز میں بدل دیتے (یعنی «ناروے کا مسئلہ»)۔کیا میں کئی resources والا Kubernetes manifest تبدیل کر سکتا ہوں؟
--- سے الگ ہر resource آؤٹ پٹ JSON ارے کا ایک element بنتا ہے، جو jq یا kubectl apply -f - کے لیے تیار ہے، جو JSON فہرستیں بھی قبول کرتا ہے۔