آپ کے آلے پر چلتا ہے · آپ کی فائل آپ کے آلے سے باہر نہیں جاتی۔
.xml فائل ڈالیں یا API، فیڈ یا کنفیگریشن فائل سے XML پیسٹ کریں اور ایسا JSON لیں جس پر کام ہو سکے۔ دستاویز براؤزر کا اپنا XML پارسر اس انکوڈنگ میں پڑھتا ہے جس کا اعلان اس کی پہلی سطر کرے، اس لیے جو کچھ درست بنا ہو وہ تبدیل ہو جاتا ہے، اور خراب فائل کی خرابی سطر اور کالم کے ساتھ بتائی جاتی ہے، اور یہ بھی کہ وہاں غلط کیا ہے۔
میپنگ طے شدہ اور واپس پلٹنے والی ہے: ہر عنصر ایک کی بنتا ہے؛ ایک ہی نام کے ہم پلہ عناصر ارے بنتے ہیں؛ ایٹریبیوٹ @ سے شروع ہونے والی کیز کے نیچے رہتے ہیں (id="A3" سے "@id": "A3")؛ اور جب کسی عنصر میں متن کے ساتھ ذیلی عناصر یا ایٹریبیوٹ بھی ہوں تو متن "#text" کے نیچے جاتا ہے۔ صرف متن والا عنصر خود وہی قدر بن جاتا ہے۔
ٹائپ کی پہچان چالو ہو تو 12، true یا خالی عنصر جیسا متن نمبر، بولین یا null بنتا ہے — صرف وہاں جہاں کچھ ضائع نہ ہو، اس لیے 007 اور 1.50 متن رہتے ہیں؛ بند کر دیں تو سب متن رہتا ہے۔ نیم اسپیس والے نام (soap:Body) جوں کے توں رہتے ہیں۔ ڈاؤن لوڈ سے پہلے پیش نظارہ پہلی 200 سطریں دکھاتا ہے۔
ان کے لیے نہیں: ایسی دستاویزیں جو درست XML نہ ہوں (بند نہ کیے گئے ٹیگ، HTML صفحات) — پارسر اندازہ لگانے کی بجائے پہلی خرابی بتا دیتا ہے۔
ٹائپ کی پہچان متن کے ساتھ ایٹریبیوٹس پر بھی لگتی ہے، اور قدر صرف وہاں بدلتی ہے جہاں کچھ ضائع نہ ہو۔ پہچان چالو ہو تو id="3" سے "@id": 3 بنتا ہے، جبکہ id="007" متن "007" ہی رہتا ہے۔ 1.50 بھی متن رہتا ہے، کیونکہ نمبر کی صورت میں وہ 1.5 لکھا جاتا۔ TRUE، true بن جاتا ہے۔ <note/> جیسا خالی عنصر، اور وہ جس میں صرف خالی جگہ ہو، null بنتے ہیں؛ لفظ NULL متن رہتا ہے۔ 2024-01-05 جیسی تاریخیں کبھی نہیں بدلتیں۔
پہچان بند ہو تو خالی عناصر "" بنتے ہیں اور ہر قدر بالکل ویسا متن رہتی ہے جیسی لکھی گئی تھی۔
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 !" بنتے ہیں۔ جن دستاویزات میں یہی ترتیب اصل مواد ہو، جیسے فارمیٹ شدہ نثر، ان کے لیے یہ میپنگ موزوں نہیں۔
سابقے والے نام جیسے لکھے ہوں ویسے ہی رہتے ہیں، اور نیم اسپیس کے اعلانات ایٹریبیوٹ کے طور پر آتے ہیں: <soap:Envelope xmlns:soap="…"> سے "soap:Envelope" کی بنتی ہے جس میں "@xmlns:soap" ہوتا ہے، اور /json-to-xml دونوں کو واپس اسی XML میں بدل دیتا ہے۔
دستاویز کا اپنا DOCTYPE جن entities کی تعریف کرے ان کے علاوہ صرف XML میں بنی پانچ (& < > " ') اور   جیسی عددی entities سمجھی جاتی ہیں۔ جب پارسر رکتا ہے تو پیغام سطر اور کالم بتاتا ہے اور سادہ الفاظ میں کہتا ہے کہ خرابی کیا ہے: کسی عنصر کو دوسرے نام سے بند کیا گیا، جیسا انجان نام (اس کی جگہ   لکھیں)، اکیلا & یا <، اوپر کی سطح پر دوسرا عنصر، یا فائل جو وقت سے پہلے ختم ہو جائے۔
فائل اس انکوڈنگ میں پڑھی جاتی ہے جس کا اعلان اس کی پہلی سطر کرے، جیسے ISO-8859-1 یا windows-1256۔ اعلان نہ ہو تو UTF-8 یا UTF-16 پڑھی جاتی ہے، اور پرانے کوڈ پیج اسی طرح پہچانے جاتے ہیں جیسا /csv-to-json پر بتایا گیا ہے۔
یہ صفحہ دوسری زبانوں میں: English · العربية · Deutsch · Français · Español · Русский · Português · 中文 · हिन्दी · Türkçe · עברית · فارسی · Bahasa Indonesia · বাংলা