YAML سے JSON کنورٹر

استعمال کا طریقہ 3 مراحل
  1. اپنا YAML یا JSON چسپاں کریں۔
  2. سمت اور اندرونی وقفہ چنیں؛ چاہیں تو کلیدیں حروفِ تہجی کے مطابق ترتیب دیں پر نشان لگائیں۔
  3. تبدیل کریں دبائیں، پھر کاپی کریں یا ڈاؤن لوڈ۔
تبدیل شدہ

تبدیلی js-yaml کے طے شدہ اسکیمے سے ہوتی ہے، جو صرف ڈیٹا پڑھتا ہے اور کبھی کوڈ نہیں چلاتا۔ YAML 1.2 کے قواعد کے تحت no, on اور off متن ہی رہتے ہیں اور بولین میں نہیں بدلتے، جیسا YAML 1.1 کے پارسر کرتے ہیں۔ --- سے جدا کی گئی کئی دستاویزات والی YAML رو ایک JSON صف بن جاتی ہے، فی دستاویز ایک اندراج۔ جو کچھ JSON بیان نہیں کر سکتا — تاریخیں، حسبِ ضرورت ٹیگ، غیر متنی کلیدیں — وہ خاموشی سے چھوڑنے کے بجائے بتا دیا جاتا ہے۔

یہ ٹول کیسے کام کرتا ہے

YAML اور JSON ایک ہی شکلیں بیان کرتے ہیں — نقشے، فہرستیں اور سادہ قدریں — اس لیے ان کے درمیان بدلنا زیادہ تر لکھائی کا فرق ہے۔ سمت اسی سے پہچان لی جاتی ہے جو آپ چسپاں کریں، یا آپ خود مقرر کر سکتے ہیں۔ YAML والی طرف کی وقفہ بندی آپ کی مرضی ہے، اور کلیدیں حروفِ تہجی کے مطابق ترتیب دی جا سکتی ہیں، جو اس وقت کرنے کے قابل ہے جب نتیجہ ورژن کنٹرول میں جا رہا ہو اور آپ کو پڑھنے کے قابل فرق چاہیے۔

تبدیلی ہمیشہ دونوں طرف یکساں نہیں ہوتی، اور یہ آلہ آپ کو بعد میں پتہ چلنے دینے کے بجائے یہ بات بتا دیتا ہے: YAML میں ایسی اقسام ہیں جو JSON میں نہیں، اور جو چیز بچ نہ سکے اسے راستے کے ساتھ بتا دیا جاتا ہے۔ تاریخیں سٹرنگ بن جاتی ہیں، لامحدود قدریں null بن جاتی ہیں، اور anchor اور alias — YAML کا کسی بلاک کو دوبارہ استعمال کرنے کا طریقہ — نقلوں میں پھیلا دیے جاتے ہیں جب تک آپ انہیں برقرار نہ رکھیں، کیونکہ JSON میں ان جیسا کچھ نہیں۔

دونوں طرف کے سفر میں کیا نہیں بچتا

  • تبصرے ہمیشہ ضائع ہو جاتے ہیں: JSON میں تبصرے کی کوئی نحو نہیں، اس لیے YAML فائل کے تبصرے واپس نہیں آ سکتے۔ عموماً یہی وجہ ہے کہ بدل کر واپس بدلی گئی ترتیبی فائل شروع سے بدتر ہوتی ہے۔
  • anchor اور alias پھیل جاتے ہیں: تین جگہ دوبارہ استعمال ہونے والا بلاک تین نقلیں بن جاتا ہے۔ ڈیٹا ایک جیسا رہتا ہے، فائل لمبی ہو جاتی ہے اور اب ایک ہی تعریف مشترک نہیں رہتی۔
  • YAML کے بغیر واوین والے بولین لوگوں کو پھنسا دیتے ہیں: yes، no، on اور off جیسے الفاظ پرانے YAML پارسر بولین سمجھ لیتے ہیں۔ جب یہ لفظ کے طور پر مراد ہوں تو انہیں واوین میں رکھیں — یہی ناروے کا مسئلہ ہے، جہاں ملک کا کوڈ NO سے false بن گیا۔
  • YAML میں وقفہ بندی ہی ساخت ہے: JSON کے بریکٹوں کے برعکس، یہاں تہہ داری خالی جگہ ہی ہے۔ غلط وقفہ بندی کی ترتیب کے ساتھ بدلی ہوئی فائل درست ہوتی ہے مگر کچھ اور معنی رکھتی ہے۔

Same shapes, different notation, not always symmetric

YAML and JSON both describe maps, lists and scalars, so most of what the [msm_tool slug="yaml-json-converter"] does is a change of notation rather than a change of meaning. The conversion is not perfectly symmetrical in both directions, though, and rather than letting that surface later as a surprise, anything that cannot survive the trip is reported by its path at the time it happens.

Comments never come back

JSON has no comment syntax at all, so a YAML file's comments have nowhere to go once converted — this is the ordinary reason a configuration file converted to JSON and back reads worse than it started, even though the data itself is unchanged.

Anchors and aliases expand into copies

YAML's mechanism for reusing a block in several places has no equivalent in JSON, so a block referenced three times becomes three separate copies in the output. The data itself is identical either way; what is lost is the single shared definition, along with the fact that editing one instance no longer updates the rest.

The Norway problem

Bare words such as `yes`, `no`, `on` and `off` are read as booleans by YAML, which is how a country code of `NO` becomes the boolean `false` rather than the two letters intended — a well-known enough trap to have its own name. Quoting a value that is meant to stay text, rather than leaving it bare, is what avoids it.

Indentation is structure, not decoration

Where JSON uses braces to mark nesting, YAML uses whitespace itself, so a file converted with the wrong indentation setting is still perfectly valid YAML — it simply means something different from what was intended. That makes indentation a semantic choice here, not a cosmetic one.

Choosing a format for configuration

YAML suits configuration that people actually edit by hand, since comments and readability are exactly what it offers over JSON. JSON is the better choice wherever a machine produces and consumes the file, since it has fewer surprises and nothing YAML-specific to trip over — dates becoming strings and infinities becoming null in the conversion are both reported rather than silently applied either way.

اکثر پوچھے گئے سوالات

خاص طور پر YAML سے JSON کنورٹر کے بارے میں۔ اس زمرے سے متعلق عمومی سوالات کے جواب زمرے کے صفحے پر موجود ہیں۔

JSON میں تبصرے کی کوئی نحو نہیں، اس لیے انہیں ظاہر نہیں کیا جا سکتا۔ YAML سے JSON اور واپس بدلنے میں سب سے بڑی گمشدگی یہی ہے۔
وہ نقلوں میں پھیل جاتے ہیں، کیونکہ JSON کسی بلاک کا حوالہ نہیں دے سکتا۔ ڈیٹا وہی رہتا ہے؛ فائل لمبی ہو جاتی ہے اور مشترکہ تعریف ختم ہو جاتی ہے۔
YAML بغیر واوین کے yes، no، on اور off کو بولین پڑھتا ہے، اس لیے NO سے false بن جاتا ہے۔ اسے واوین میں رکھیں۔ یہ اتنا معروف ہے کہ اس کا نام ہے — ناروے کا مسئلہ۔
YAML جہاں لوگ اسے ہاتھ سے لکھیں، کیونکہ وہاں تبصرے اور پڑھنے کی آسانی اہم ہے۔ JSON جہاں مشین اسے بنائے اور پڑھے، کیونکہ اس میں حیرتیں کم ہیں۔
تاریخیں سٹرنگ بن جاتی ہیں اور لامحدود قدریں null۔ جو بھی متاثر ہو اسے خاموشی سے بدلنے کے بجائے راستے کے ساتھ بتا دیا جاتا ہے۔

نئے ٹولز، خصوصیات اور کارکردگی بڑھانے کے مشوروں کی اطلاع پانے کے لیے سبسکرائب کریں۔