UltKit

تبدیل JSON به XML

داده‌های JSON را به نرم‌افزاری بدهید که فقط XML می‌فهمد. هر رکورد به یک عنصر تبدیل می‌شود، هر کلید به یک تگ فرزند، و کل سند زیر یک عنصر ریشه قرار می‌گیرد که نامش را خودتان انتخاب می‌کنید.

مبدل داده

یا فایل‌های CSV, TSV, TXT … را اینجا رها کنید ·

حداکثر 95 MB برای هر فایل· تا 20 فایل· حذف پس از 30 دقیقه

خروجی

فایل‌ها روی سرورهای ما پردازش می‌شوند و پس از 30 دقیقه حذف می‌شوند.

نحوه استفاده از این ابزار

  1. 1

    فایل JSON را بارگذاری کنید

    یک فایل .json، مثلاً پاسخ یک API، یا یک فایل JSON Lines اضافه کنید. حداکثر 20 فایل، هر کدام تا 95 MB.

  2. 2

    عنصر ریشه را نام‌گذاری کنید

    در بخش تنظیمات پیشرفته، تگ بیرونی را در تگ ریشهٔ XML بنویسید (مقدار پیش‌فرض rows است) و برای خروجی با تورفتگی، قالب‌بندی خوانا را روشن بگذارید.

  3. 3

    تبدیل و نگاشت کنید

    روی تبدیل به XML بزنید و فایل را دانلود کنید. اگر طرح (schema) سیستم گیرنده نام‌های دیگری می‌خواهد، تگ‌ها را تغییر نام دهید.

چرا JSON را به XML تبدیل کنیم، وقتی بیشتر APIها به JSON رفته‌اند؟

JSON در API های وب پیروز شد؛ مشخصات فعلی آن، RFC 8259 مصوب 2017، در چند صفحه جا می‌شود. XML قدیمی‌تر است، از فوریهٔ 1998 توصیهنامهٔ W3C بوده و هرگز جاهایی را که قراردادها سخت‌گیرند ترک نکرده است: بانکداری، صورت‌حساب الکترونیکی، نشر و گزارش‌دهی دولتی.

بنابراین جهت این تبدیل معمولاً از پول یا مقررات تبعیت می‌کند. برنامه‌نویسی سفارش‌ها را از یک API با JSON می‌گیرد و باید آن‌ها را به سرویس SOAP یک شریک بفرستد. فروشگاهی محصولاتش را در JSON نگه می‌دارد اما سایت مقایسهٔ قیمت فید XML می‌خواهد. تیمی ترجمه‌ها را در JSON ذخیره می‌کند و ساخت اندروید strings.xml انتظار دارد. اگر مقصد صفحه‌گسترده باشد، تبدیل JSON به CSV به‌جای عنصر، سطر می‌دهد.

سیستم‌هایی که هنوز ورودی XML می‌خواهند

کاربردهای تبدیل JSON به XML
سازمانالزاممنبع
سرویس‌های وب SOAPهر درخواست در یک پاکت XML ارسال می‌شود؛ SOAP 1.2 در سال 2003 توصیهنامهٔ W3C شد—
Google Merchant Centerفید محصول به صورت XML در قالب RSS 2.0 یا Atom 1.0 و همچنین متن جداشده با جداکننده پذیرفته می‌شود—
صورت‌حساب الکترونیکی Peppolصورت‌حساب‌ها به صورت اسناد UBL 2.1 XML طبق قواعد Peppol BIS Billing 3.0 مبادله می‌شوند—
برنامه‌های اندرویدمنابع متنی و ترجمه‌ها در res/values/strings.xml قرار دارند—

نمونهٔ تبدیل JSON به XML: دو محصول

XML نوشته‌شده از [{"sku":"A-17","price":12.5,"tags":["جدید","حراج"]}, {"sku":"B-02","price":8}]
<?xml version="1.0" encoding="UTF-8"?>
<rows>
  <row>
    <sku>A-17</sku>
    <price>12.5</price>
    <tags>جدید</tags>
    <tags>حراج</tags>
  </row>
  <row>
    <sku>B-02</sku>
    <price>8</price>
  </row>
</rows>

باور نادرستJSON و XML یک‌به‌یک به هم نگاشت می‌شوند، پس تبدیل دقیق است.

واقعیتXML ویژگی (attribute)، محتوای ترکیبی و فضای نام دارد که JSON ندارد، و JSON نوع‌هایی دارد که XML ندارد. مبدل باید یک نگاشت را انتخاب کند؛ این مبدل همه‌جا از عنصرهای فرزند استفاده می‌کند.

باور نادرستعدد 12.5 در XML هم عدد می‌ماند.

واقعیتXML کاراکتر ذخیره می‌کند. 12.5 تا وقتی طرح یا برنامهٔ خواننده آن را عدد اعشاری نداند، فقط متن است.

وقتی JSON به XML تبدیل می‌شود چه چیزی تغییر می‌کند

سه چیز را باید بررسی کرد. نوع‌ها به متن تبدیل می‌شوند، پس true، null و 0 همه به صورت کاراکتر می‌رسند؛ null معمولاً به عنصر خالی تبدیل می‌شود. کلیدهایی که نام معتبر XML نیستند باید تغییر نام یابند، چون تگ نمی‌تواند با رقم شروع شود یا فاصله داشته باشد. و خروجی بزرگ‌تر است، چون هر مقدار در یک تگ باز و بستهٔ تکرارکنندهٔ کلید قرار می‌گیرد.

چیز دیگری از دست نمی‌رود. تودرتویی به صورت عناصر تودرتو حفظ می‌شود، ترتیب رکوردها نگه داشته می‌شود و متن یونیکد سالم می‌ماند، چون فایل با UTF-8 نوشته می‌شود. گزینه‌های بیشتر برای داده‌های ساخت‌یافته، از YAML تا SQL، در صفحهٔ مبدل داده آمده است.

مشخصات فرمت‌های JSON و XML

JSON

نشانه‌گذاری شیء جاوااسکریپت (JSON)

JSON یک فرمت متنی سبک برای داده‌های ساختاریافته است که Douglas Crockford در اوایل دهه 2000 آن را رایج کرد و با عنوان RFC 8259 و ECMA-404 استاندارد شد. اشیا، آرایه‌ها، رشته‌ها، اعداد، مقادیر بولی و null را با نحوی ساده و خوانا نمایش می‌دهد. این فرمت پیش‌فرض APIهای وب، فایل‌های پیکربندی و تبادل داده بین برنامه‌ها در تقریباً همه زبان‌های برنامه‌نویسی است. توضیحات، تاریخ یا طرحواره ندارد و فایل‌های بزرگ تودرتو بدون نمایشگر سخت خوانده می‌شوند.

فشرده‌سازی
–
شفافیت
–
انیمیشن
–
سال معرفی
2001 · Douglas Crockford
مبدل JSON

XML

Extensible Markup Language

XML زبان نشانه‌گذاری برای داده‌های ساختاریافته است که W3C در سال 1998 منتشر کرد. از برچسب‌های تودرتو با ویژگی‌ها استفاده می‌کند و از طرحواره، فضای نام و اعتبارسنجی پشتیبانی می‌کند، به همین دلیل برای اسناد پیچیده مطمئن است. زیربنای فیدهای RSS، SVG، اسناد Office، نقشه‌های سایت و بسیاری از تبادل‌های داده سازمانی و دولتی است. XML در مقایسه با JSON پرحجم‌تر است، اما همه زبان‌های برنامه‌نویسی و بسیاری از ابزارهای صفحه‌گسترده می‌توانند آن را بخوانند.

فشرده‌سازی
–
شفافیت
–
انیمیشن
–
سال معرفی
1998 · W3C
مبدل XML

JSON وقتی به XML تبدیل می‌شود که داده‌های امروزی باید وارد یک قرارداد قدیمی‌تر شوند: سرویس SOAP، فید محصول، شبکهٔ صورت‌حساب الکترونیکی یا فایل پیکربندی که مصرف‌کننده‌اش برای خواندن عناصر نوشته شده، نه آکولادها.

پرسش‌های متداول تبدیل JSON به XML

وقتی JSON من با یک آرایه شروع می‌شود، چرا XML به یک عنصر ریشه نیاز دارد؟

مشخصات XML 1.0 می‌گوید هر سند معتبر باید دقیقاً یک عنصر داشته باشد که همهٔ عناصر دیگر را در بر بگیرد. آرایهٔ JSON چنین پوششی ندارد؛ بنابراین مبدل یکی اضافه می‌کند که نامش را تگ ریشهٔ XML تعیین می‌کند و هر عضو آرایه را درون آن به شکل یک <row> قرار می‌دهد.

با کلیدهای JSON مانند «2024 total» یا «unit price» چه می‌شود؟

هیچ‌کدام نام معتبر عنصر XML نیستند: نام نمی‌تواند با رقم شروع شود یا فاصله داشته باشد. پیش از تبدیل، چنین کلیدهایی را در JSON تغییر نام دهید، بهتر است به همان نام تگ‌هایی که طرح گیرنده استفاده می‌کند، تا خروجی بعداً نیازی به اصلاح نداشته باشد.

آرایهٔ JSON درون یک رکورد در XML چگونه نوشته می‌شود؟

به صورت همان عنصر که برای هر عضو یک بار تکرار می‌شود. آرایهٔ tags با سه رشته به سه عنصر <tags> پشت سر هم تبدیل می‌شود. آرایهٔ خالی هیچ اثری باقی نمی‌گذارد و این یکی از معدود جاهایی است که تبدیل JSON به XML اطلاعات را از دست می‌دهد.

آیا XML خروجی از اعتبارسنجی XSD طرف همکار من عبور می‌کند؟

فقط اگر ساختار از قبل با آن بخواند. مبدل یک نسخهٔ وفادار و معتبر از JSON شما می‌نویسد؛ ترتیب عناصر، فضای نام یا ویژگی‌های موردنیاز طرف مقابل را نمی‌داند. خروجی را نقطهٔ شروع بدانید و با طرح موردنظر تطبیق دهید.

آیا می‌توانم XML را دوباره به JSON تبدیل کنم؟

از تبدیل XML به JSON استفاده کنید. در رفت‌وبرگشت انتظار تفاوت‌های کوچک را داشته باشید: XML هر مقدار را به صورت متن ذخیره می‌کند، پس عدد یا true که در JSON بوده ممکن است به صورت رشته برگردد.