XML کو JSON میں تبدیل کریں

آپ کے آلے پر چلتا ہے · آپ کی فائل آپ کے آلے سے باہر نہیں جاتی۔

.xml فائل ڈالیں یا API، فیڈ یا کنفیگریشن فائل سے XML پیسٹ کریں اور ایسا JSON لیں جس پر کام ہو سکے۔ دستاویز براؤزر کا اپنا XML پارسر اس انکوڈنگ میں پڑھتا ہے جس کا اعلان اس کی پہلی سطر کرے، اس لیے جو کچھ درست بنا ہو وہ تبدیل ہو جاتا ہے، اور خراب فائل کی خرابی سطر اور کالم کے ساتھ بتائی جاتی ہے، اور یہ بھی کہ وہاں غلط کیا ہے۔

میپنگ طے شدہ اور واپس پلٹنے والی ہے: ہر عنصر ایک کی بنتا ہے؛ ایک ہی نام کے ہم پلہ عناصر ارے بنتے ہیں؛ ایٹریبیوٹ @ سے شروع ہونے والی کیز کے نیچے رہتے ہیں (id="A3" سے "@id": "A3")؛ اور جب کسی عنصر میں متن کے ساتھ ذیلی عناصر یا ایٹریبیوٹ بھی ہوں تو متن "#text" کے نیچے جاتا ہے۔ صرف متن والا عنصر خود وہی قدر بن جاتا ہے۔

ٹائپ کی پہچان چالو ہو تو 12، true یا خالی عنصر جیسا متن نمبر، بولین یا null بنتا ہے — صرف وہاں جہاں کچھ ضائع نہ ہو، اس لیے 007 اور 1.50 متن رہتے ہیں؛ بند کر دیں تو سب متن رہتا ہے۔ نیم اسپیس والے نام (soap:Body) جوں کے توں رہتے ہیں۔ ڈاؤن لوڈ سے پہلے پیش نظارہ پہلی 200 سطریں دکھاتا ہے۔

XML کو JSON میں تبدیل کریں کا طریقہ

  1. XML فائل ڈالیں، یا XML خانے میں پیسٹ کریں۔
  2. طے کریں کہ نمبر، بولین اور خالی عناصر ٹائپ ہوں یا نہیں۔
  3. «JSON میں تبدیل کریں» دبائیں اور پیش نظارہ جانچیں۔
  4. .json ڈاؤن لوڈ کریں۔

معاون فارمیٹس اور حدود

ان پٹ
XML (.xml) — فائل یا پیسٹ کیا متن، اسی انکوڈنگ میں جس کا وہ اعلان کرے
آؤٹ پٹ
JSON، خوش خط ترتیب، UTF-8
ایٹریبیوٹ
"@name" کیز کے طور پر محفوظ
دہرائے گئے عناصر
ارے بنتے ہیں
کہاں چلتا ہے
براؤزر میں – اپ لوڈ کے بغیر

ان کے لیے نہیں: ایسی دستاویزیں جو درست XML نہ ہوں (بند نہ کیے گئے ٹیگ، HTML صفحات) — پارسر اندازہ لگانے کی بجائے پہلی خرابی بتا دیتا ہے۔

کون سی قدروں کی ٹائپ بدلتی ہے

ٹائپ کی پہچان متن کے ساتھ ایٹریبیوٹس پر بھی لگتی ہے، اور قدر صرف وہاں بدلتی ہے جہاں کچھ ضائع نہ ہو۔ پہچان چالو ہو تو id="3" سے "@id": 3 بنتا ہے، جبکہ id="007" متن "007" ہی رہتا ہے۔ 1.50 بھی متن رہتا ہے، کیونکہ نمبر کی صورت میں وہ 1.5 لکھا جاتا۔ TRUE، true بن جاتا ہے۔ <note/> جیسا خالی عنصر، اور وہ جس میں صرف خالی جگہ ہو، null بنتے ہیں؛ لفظ NULL متن رہتا ہے۔ 2024-01-05 جیسی تاریخیں کبھی نہیں بدلتیں۔

پہچان بند ہو تو خالی عناصر "" بنتے ہیں اور ہر قدر بالکل ویسا متن رہتی ہے جیسی لکھی گئی تھی۔

JSON کیا نہیں رکھ سکتا

XML دستاویز کے کچھ حصوں کی JSON میں کوئی جگہ نہیں، اس لیے وہ چھوڑ دیے جاتے ہیں: تبصرے، پروسیسنگ ہدایات اور DOCTYPE۔ CDATA حصے عام متن بن جاتے ہیں، اس لیے <a><![CDATA[<b>x</b>]]></a> سے "a": "<b>x</b>" ملتا ہے۔

مختلف ناموں والے عناصر کی باہمی ترتیب ختم ہو جاتی ہے، کیونکہ ہر نام ایک کی بنتا ہے۔ <step>1</step><note/><step>2</step> میں دونوں step اکٹھے ہو کر "step": [1, 2] بنتے ہیں، اور کہیں درج نہیں ہوتا کہ note ان کے درمیان تھا۔ مارک اپ کے ساتھ ملا متن بھی اسی طرح اپنی جگہ کھو دیتا ہے: <p>Hello <b>world</b> and <i>you</i>!</p> سے "b": "world"، "i": "you" اور "#text": "Hello and !" بنتے ہیں۔ جن دستاویزات میں یہی ترتیب اصل مواد ہو، جیسے فارمیٹ شدہ نثر، ان کے لیے یہ میپنگ موزوں نہیں۔

نیم اسپیس، entities، خرابیاں اور انکوڈنگ

سابقے والے نام جیسے لکھے ہوں ویسے ہی رہتے ہیں، اور نیم اسپیس کے اعلانات ایٹریبیوٹ کے طور پر آتے ہیں: <soap:Envelope xmlns:soap="…"> سے "soap:Envelope" کی بنتی ہے جس میں "@xmlns:soap" ہوتا ہے، اور /json-to-xml دونوں کو واپس اسی XML میں بدل دیتا ہے۔

دستاویز کا اپنا DOCTYPE جن entities کی تعریف کرے ان کے علاوہ صرف XML میں بنی پانچ (&amp; &lt; &gt; &quot; &apos;) اور &#160; جیسی عددی entities سمجھی جاتی ہیں۔ جب پارسر رکتا ہے تو پیغام سطر اور کالم بتاتا ہے اور سادہ الفاظ میں کہتا ہے کہ خرابی کیا ہے: کسی عنصر کو دوسرے نام سے بند کیا گیا، &nbsp; جیسا انجان نام (اس کی جگہ &#160; لکھیں)، اکیلا & یا <، اوپر کی سطح پر دوسرا عنصر، یا فائل جو وقت سے پہلے ختم ہو جائے۔

فائل اس انکوڈنگ میں پڑھی جاتی ہے جس کا اعلان اس کی پہلی سطر کرے، جیسے ISO-8859-1 یا windows-1256۔ اعلان نہ ہو تو UTF-8 یا UTF-16 پڑھی جاتی ہے، اور پرانے کوڈ پیج اسی طرح پہچانے جاتے ہیں جیسا /csv-to-json پر بتایا گیا ہے۔

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

کیا میری فائل سرور پر اپ لوڈ ہوتی ہے؟
نہیں۔ تبدیلی پوری کی پوری آپ کے براؤزر میں، آپ کے اپنے آلے کی طاقت سے ہوتی ہے، اور فائل آپ کے کمپیوٹر یا موبائل سے باہر نہیں جاتی۔ کوئی ٹول ایک بار استعمال ہو جائے تو پھر انٹرنیٹ کے بغیر بھی چلتا ہے (ویڈیو، متن کی پہچان اور بیک گراؤنڈ ہٹانے والے ٹول پہلی بار اپنا انجن اسی سائٹ سے لیتے ہیں)۔
ایٹریبیوٹ اور ملا جلا مواد کیسے سنبھالا جاتا ہے؟
ایٹریبیوٹ @ سے شروع ہونے والی کیز بنتے ہیں، اس لیے <item id="A3"> سے "@id": "A3" ملتا ہے۔ اگر عنصر میں متن کے ساتھ ایٹریبیوٹ یا ذیلی عناصر بھی ہوں تو متن "#text" کے نیچے رکھا جاتا ہے؛ صرف متن والا عنصر براہِ راست وہی متن بن جاتا ہے۔
ایک عنصر آبجیکٹ اور دہرائے گئے ارے کیوں ہیں؟
جو عنصر اپنے والد کے نیچے ایک بار آئے وہ آبجیکٹ (یا قدر) بنتا ہے؛ ایک ہی نام کے دو یا زیادہ ہم پلہ عناصر ارے بنتے ہیں۔ یہ دستاویز کا ہو بہو عکس ہے، اس لیے ایک آئٹم کی فہرست ایک آبجیکٹ ہے — اگر آپ کے کوڈ کو دونوں صورتوں میں ارے چاہیے تو وصول کرنے والی طرف اسے لپیٹ لیں۔
JSON کا اوپر والا حصہ کیسا دکھتا ہے؟
روٹ عنصر کے نام کی ایک کی جس کے اندر سب کچھ ہو — <records>…</records> سے {"records": {...}} بنتا ہے۔ اس سے روٹ کا نام محفوظ رہتا ہے تاکہ JSON سے XML کا ٹول وہی دستاویز دوبارہ بنا سکے۔

متعلقہ ٹولز

اسپریڈشیٹ اور ڈیٹا میں مزید

یہ صفحہ دوسری زبانوں میں: English · العربية · Deutsch · Français · Español · Русский · Português · 中文 · हिन्दी · Türkçe · עברית · فارسی · Bahasa Indonesia · বাংলা