تبدیل JSON به XML

روی دستگاه شما اجرا می‌شود · فایل شما از دستگاهتان خارج نمی‌شود.

JSON را بچسبانید یا رها کنید و یک سند XML بگیرید با اعلان در بالا و یک عنصر برای هر کلید. سندی که فقط یک کلید در بالاترین سطح دارد همان کلید را عنصر ریشه می‌کند؛ هر چیز دیگری داخل <root> می‌رود. فهرست به عنصرهای تکراری هم‌نام کلیدش تبدیل می‌شود ("items": [..] چند عنصر <items> می‌دهد) و فهرست سطح بالا عنصرهای <item> زیر <root> می‌شود.

کلیدهایی که با @ شروع می‌شوند صفت می‌شوند و کلید "#text" متن خود عنصر می‌شود؛ این همان شکلی است که ابزار XML به JSON می‌نویسد، پس سندی که آنجا تبدیل شده اینجا به همان XML برمی‌گردد. هر مقدار دیگر متنی داخل عنصرش است، null عنصر خالی می‌شود و سند با دو فاصله در هر سطح تورفتگی دارد. کلیدهایی که XML به‌عنوان نام نمی‌پذیرد (شروع با رقم، دارای فاصله یا نماد) با زیرخط پاک‌سازی می‌شوند تا نتیجه همیشه تجزیه شود.

متن درست گریز داده می‌شود (&، <، > و در صفت‌ها گیومه و شکست خط)؛ نویسه‌های کنترلی که XML 1.0 اصلاً نمی‌تواند نگهشان دارد حذف می‌شوند. کدگذاری UTF-8 است و ۲۰۰ خط اول را پیش از دانلود می‌بینید. چیزی آپلود نمی‌شود.

راهنمای تبدیل 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 این سه از هم قابل تشخیص نیستند.

نویسه‌های کنترلی، یعنی کدهای زیر ۳۲ به‌جز تب، خط جدید و بازگشت نورد (carriage return)، در 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>. فهرستی که در بالاترین سطح سند است عنصرهای <item> داخل <root> می‌شود. فهرست خالی هیچ عنصری تولید نمی‌کند.
آیا فایل من به سرور فرستاده می‌شود؟
نه. تبدیل به‌طور کامل در مرورگر و با توان دستگاه خودتان انجام می‌شود و فایل از رایانه یا گوشی شما بیرون نمی‌رود. هر ابزار پس از یک بار استفاده، بدون اینترنت هم کار می‌کند (ابزارهای ویدیو، تشخیص متن و حذف پس‌زمینه بار اول موتورشان را از همین سایت می‌گیرند).
کلیدهایی که فاصله یا رقم دارند چه می‌شوند؟
نام عنصر 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 · বাংলা