روی دستگاه شما اجرا میشود · فایل شما از دستگاهتان خارج نمیشود.
JSON را بچسبانید یا رها کنید و یک سند XML بگیرید با اعلان در بالا و یک عنصر برای هر کلید. سندی که فقط یک کلید در بالاترین سطح دارد همان کلید را عنصر ریشه میکند؛ هر چیز دیگری داخل <root> میرود. فهرست به عنصرهای تکراری همنام کلیدش تبدیل میشود ("items": [..] چند عنصر <items> میدهد) و فهرست سطح بالا عنصرهای <item> زیر <root> میشود.
کلیدهایی که با @ شروع میشوند صفت میشوند و کلید "#text" متن خود عنصر میشود؛ این همان شکلی است که ابزار XML به JSON مینویسد، پس سندی که آنجا تبدیل شده اینجا به همان XML برمیگردد. هر مقدار دیگر متنی داخل عنصرش است، null عنصر خالی میشود و سند با دو فاصله در هر سطح تورفتگی دارد. کلیدهایی که XML بهعنوان نام نمیپذیرد (شروع با رقم، دارای فاصله یا نماد) با زیرخط پاکسازی میشوند تا نتیجه همیشه تجزیه شود.
متن درست گریز داده میشود (&، <، > و در صفتها گیومه و شکست خط)؛ نویسههای کنترلی که XML 1.0 اصلاً نمیتواند نگهشان دارد حذف میشوند. کدگذاری UTF-8 است و ۲۰۰ خط اول را پیش از دانلود میبینید. چیزی آپلود نمیشود.
مناسب نیست برای: مطابقت با یک اسکیمای خاص 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 این سه از هم قابل تشخیص نیستند.
نویسههای کنترلی، یعنی کدهای زیر ۳۲ بهجز تب، خط جدید و بازگشت نورد (carriage return)، در XML 1.0 به هیچ شکلی نوشته نمیشوند، حتی بهصورت عددی مثل ؛ پس حذف میشوند. بازگشت نورد به شکل نوشته میشود تا تجزیهگر نگهش دارد. در مقدار صفتها گیومه، تب و شکست خط هم بهصورت ارجاع نوشته میشوند، چون تجزیهگر در غیر این صورت آنها را به فاصله تبدیل میکرد.
عنصرهای تکراری فقط یک سطح فهرست را میتوانند نشان دهند. "m": [[1, 2], [3]] سه عنصر <m> با مقدارهای 1، 2 و 3 میشود و اینکه 1 و 2 با هم بودند از بین میرود. فهرست سطح بالا هم همینطور است: [1, [3, 4]] سه عنصر <item> میدهد. اگر گروهبندی مهم است، هر فهرست درونی را اول در یک شیء بپیچید: [{"values": [1, 2]}, {"values": [3]}] دو عنصر <item> میدهد که هر کدام <values> خودش را دارد.
سندی که از /xml-to-json گذشته با همان عنصرها، صفتها، پیشوندهای فضای نام و متن برمیگردد، بدون پوشش اضافهای دورش. آنچه JSON هرگز نگه نداشته برنمیگردد: توضیحات (کامنتها) و DOCTYPE، جای متن میان عنصرهای فرزند، و ترتیب میان عنصرهایی با نامهای مختلف، که گروهبندیشده بر اساس نام برمیگردند. اگر در /xml-to-json تشخیص نوع روشن بوده، مقداری مثل TRUE بهصورت true برمیگردد؛ برای رفت و برگشت کلمهبهکلمه، تشخیص را آنجا خاموش کنید.
این صفحه به زبانهای دیگر: English · العربية · Deutsch · Français · Español · Русский · Português · 中文 · हिन्दी · Türkçe · עברית · اردو · Bahasa Indonesia · বাংলা