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

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

JSON پیسٹ کریں یا ڈالیں اور ایسی XML دستاویز لیں جس کے اوپر اعلان ہو اور ہر کی کا ایک عنصر۔ جس دستاویز کی اوپر کی سطح پر ایک ہی کی ہو وہ کی روٹ عنصر بنتی ہے؛ باقی ہر صورت میں سب کچھ <root> کے اندر جاتا ہے۔ فہرست اپنی کی کے نام کے دہرائے گئے عناصر بنتی ہے — "items": [..] سے کئی <items> عناصر بنتے ہیں — اور اوپر کی سطح کی فہرست <root> کے نیچے <item> عناصر بنتی ہے۔

@ سے شروع ہونے والی کیز ایٹریبیوٹ بنتی ہیں اور "#text" کی عنصر کا متن — وہی شکل جو XML سے JSON کا ٹول لکھتا ہے، اس لیے وہاں تبدیل کی گئی دستاویز یہاں سے وہی XML بن کر لوٹتی ہے۔ باقی ہر قدر اپنے عنصر کے اندر متن ہے، null خالی عنصر بنتا ہے، اور دستاویز ہر سطح پر دو خالی جگہوں سے ترتیب پاتی ہے۔ جو کیز XML نام کے طور پر قبول نہیں کرتا — ہندسے سے شروع، خالی جگہ یا علامتوں والی — انہیں انڈر اسکور سے صاف کیا جاتا ہے تاکہ نتیجہ ہمیشہ پارس ہو۔

متن صحیح طرح اسکیپ ہوتا ہے (&، <، > اور ایٹریبیوٹس میں واوین اور لائن بریک)؛ کنٹرول حروف، جو XML 1.0 میں رکھے ہی نہیں جا سکتے، ہٹا دیے جاتے ہیں۔ انکوڈنگ UTF-8 ہے، اور ڈاؤن لوڈ سے پہلے آپ پہلی 200 سطریں دیکھتے ہیں۔ کچھ اپ لوڈ نہیں ہوتا۔

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

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

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

ان پٹ
JSON (.json) — فائل یا پیسٹ کیا متن
آؤٹ پٹ
XML 1.0، UTF-8، اوپر اعلان، خوش خط ترتیب
روٹ
اوپر کی سطح کی اکیلی کی، ورنہ <root>؛ اوپر کی سطح کی فہرست <item> عناصر بنتی ہے
فہرستیں
کی کے نام کے دہرائے گئے عناصر
کہاں چلتا ہے
براؤزر میں – اپ لوڈ کے بغیر

ان کے لیے نہیں: کسی مخصوص XML اسکیما (SOAP، RSS، انوائس کا معیار) سے مطابقت — عناصر کے نام آپ کی JSON کیز پر چلتے ہیں، اسکیما پر نہیں۔

آپ کی کیز عناصر کے نام کیسے بنتی ہیں

جو کی @ سے شروع ہو وہ ایٹریبیوٹ بنتی ہے اور "#text" کی عنصر کا متن بنتی ہے، اس لیے {"item": {"@id": 3, "#text": "A"}} سے <item id="3">A</item> بنتا ہے۔ جب دستاویز کی اوپر کی سطح پر ایک ہی کی ہو تو وہی روٹ عنصر بنتی ہے؛ ورنہ سب کچھ <root> کے اندر جاتا ہے۔

جو حرف XML نام میں جائز نہیں وہ انڈر اسکور بن جاتا ہے، اور جو نام کسی ایسے حرف سے شروع ہو جو شروع میں جائز نہیں، جیسے ہندسہ، اس کے آگے ایک انڈر اسکور لگتا ہے: "1st place" سے <_1st_place> بنتا ہے۔ کولن صرف تب رہتا ہے جب اس کا سابقہ اوپر کہیں اعلان شدہ ہو، جیسے "@xmlns:soap" میں؛ بغیر اعلان کے "soap:Body" سے <soap_Body> بنتا ہے، کیونکہ ورنہ نیم اسپیس سمجھنے والا کوئی پارسر اسے پڑھ نہ پاتا۔ کسی بھی رسم الخط کے حروف جائز ہیں، اس لیے "نام" یا "名前" جیسی کی جوں کی توں رہتی ہے۔

قدریں کیسی دکھتی ہیں

ہر قدر متن کے طور پر لکھی جاتی ہے، اور نمبر بالکل ویسے جیسے JSON میں ہیں: 1.0، 1.0 ہی رہتا ہے اور 12345678901234567890 اپنا ہر ہندسہ رکھتا ہے۔ null اور خالی آبجیکٹ دونوں <note/> جیسا خالی عنصر بنتے ہیں، اور خالی فہرست کچھ بھی نہیں لکھتی، اس لیے XML ان تینوں میں فرق نہیں بتا سکتی۔

کنٹرول حروف، یعنی 32 سے نیچے کے کوڈ سوائے ٹیب، لائن فیڈ اور کیریج ریٹرن کے، XML 1.0 میں لکھے ہی نہیں جا سکتے، &#1; جیسے نمبر کی صورت میں بھی نہیں، اس لیے ہٹا دیے جاتے ہیں۔ کیریج ریٹرن &#13; لکھا جاتا ہے تاکہ پارسر اسے سنبھال کر رکھے۔ ایٹریبیوٹ کی قدروں میں واوین، ٹیب اور لائن بریک بھی حوالوں کی صورت لکھے جاتے ہیں، کیونکہ ورنہ پارسر انہیں خالی جگہ بنا دیتا۔

فہرستوں کی فہرست اپنی گروہ بندی کھو دیتی ہے

دہرائے گئے عناصر فہرست کی صرف ایک سطح دکھا سکتے ہیں۔ "m": [[1, 2], [3]] تین <m> عناصر بنتا ہے جن میں 1، 2 اور 3 ہیں، اور یہ بات ختم ہو جاتی ہے کہ 1 اور 2 ساتھ تھے۔ اوپر کی سطح کی فہرست بھی یہی کرتی ہے: [1, [3, 4]] سے تین <item> عناصر بنتے ہیں۔ اگر گروہ بندی اہم ہو تو پہلے ہر اندرونی فہرست کو ایک آبجیکٹ میں لپیٹیں: [{"values": [1, 2]}, {"values": [3]}] سے دو <item> عناصر بنتے ہیں، ہر ایک میں اپنا <values>۔

XML سے JSON اور واپس

جو دستاویز /xml-to-json سے گزری ہو وہ انہی عناصر، ایٹریبیوٹس، نیم اسپیس سابقوں اور متن کے ساتھ لوٹتی ہے، اوپر کسی اضافی لفافے کے بغیر۔ جو JSON میں کبھی تھا ہی نہیں وہ واپس نہیں آتا: تبصرے اور DOCTYPE، ذیلی عناصر کے درمیان متن کی جگہ، اور مختلف ناموں والے عناصر کی باہمی ترتیب، جو نام کے حساب سے گروہوں میں لوٹتے ہیں۔ اگر /xml-to-json میں ٹائپ کی پہچان چالو تھی تو TRUE جیسی قدر true بن کر لوٹتی ہے؛ لفظ بہ لفظ واپسی کے لیے وہاں پہچان بند رکھیں۔

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

کیا میری فائل سرور پر اپ لوڈ ہوتی ہے؟
نہیں۔ تبدیلی پوری کی پوری آپ کے براؤزر میں، آپ کے اپنے آلے کی طاقت سے ہوتی ہے، اور فائل آپ کے کمپیوٹر یا موبائل سے باہر نہیں جاتی۔ کوئی ٹول ایک بار استعمال ہو جائے تو پھر انٹرنیٹ کے بغیر بھی چلتا ہے (ویڈیو، متن کی پہچان اور بیک گراؤنڈ ہٹانے والے ٹول پہلی بار اپنا انجن اسی سائٹ سے لیتے ہیں)۔
فہرستیں کیسے دکھائی جاتی ہیں؟
دہرائے گئے عناصر کے طور پر۔ {"items": [1, 2]} سے <items>1</items><items>2</items> بنتا ہے۔ دستاویز کے بالکل اوپر کی فہرست <root> کے اندر <item> عناصر بنتی ہے۔ خالی فہرست کوئی عنصر نہیں بناتی۔
خالی جگہ یا ہندسوں والی کیز کا کیا؟
XML عنصر کا نام ہندسے سے شروع نہیں ہو سکتا نہ اس میں خالی جگہ ہو سکتی ہے۔ ایسی کیز صاف کی جاتی ہیں: "1st place" سے _1st_place، "unit price" سے unit_price۔ باقی سب جوں کا توں رہتا ہے۔
کیا ذیلی عناصر کی بجائے ایٹریبیوٹ مل سکتے ہیں؟
جی ہاں: کی کے آگے @ لگائیں۔ {"item": {"@id": 3, "name": "A"}} سے <item id="3"><name>A</name></item> بنتا ہے۔ یہ وہی شکل ہے جو XML سے JSON کا ٹول لکھتا ہے، اس لیے آنا جانا وہی دستاویز واپس دیتا ہے۔

متعلقہ ٹولز

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

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