UltKit

تبدیل XML به JSON

داده‌ها را از پاسخ SOAP، فید RSS، فایل پیکربندی یا خروجی یک سیستم قدیمی بیرون بکشید و به JSON تبدیل کنید که JavaScript، Python یا ابزار بدون‌کدنویسی شما مستقیماً آن را می‌خواند، بی‌آنکه لازم باشد خودتان پارسر بنویسید.

مبدل داده

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

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

خروجی

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

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

  1. 1

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

    فایل‌های .xml را در بخش بارگذاری رها کنید؛ حداکثر ۲۰ فایل در هر دسته و هر کدام تا 95 MB. هر فایل جداگانه تبدیل می‌شود.

  2. 2

    حالت خوانا یا فشرده را انتخاب کنید

    گزینه‌ی قالب‌بندی خوانا روشن است و JSON را برای خواندن و بازبینی کد تورفتگی می‌دهد. برای گرفتن کوچک‌ترین خروجی تک‌خطی برای بدنه‌ی API، آن را در تنظیمات پیشرفته خاموش کنید.

  3. 3

    تبدیل کنید و از JSON استفاده کنید

    روی تبدیل به JSON ← بزنید، فایل .json را دانلود کنید و در کد یا ابزار خود بارگذاری کنید.

XML را بارگذاری کنید و تبدیل به JSON ← را بزنید: عنصرها به کلید، عنصرهای تکراری به آرایه و ویژگی‌ها به کلیدهایی با پیشوند @ تبدیل می‌شوند، پس هیچ اطلاعاتی از تگ‌ها از دست نمی‌رود.

چه کسانی به مبدل XML به JSON نیاز دارند

XML 1.0 در فوریه‌ی 1998 به توصیه‌نامه‌ی W3C تبدیل شد و تا یک دهه‌ی بعد، راه گفت‌وگوی سیستم‌ها بود: سرویس‌های وب SOAP، فیدهای RSS و Atom، اسناد Office، پیام‌های بانکی و کاتالوگ محصولات. بسیاری از آن سیستم‌ها هنوز در حال کارند. JSON که در RFC 8259 مشخص شده، API‌های وب جدید را در دست گرفت، چون جاوااسکریپت بدون کتابخانه‌ی پارسر آن را می‌خواند و تقریباً در همه‌ی زبان‌ها مستقیماً با لیست و دیکشنری متناظر است.

بنابراین کسانی که تبدیل می‌کنند معمولاً میان این دو دوره پل می‌زنند. توسعه‌دهنده‌ی فرانت‌اند پاسخ SOAP را از یک ارائه‌دهنده‌ی پرداخت یا حمل‌ونقل می‌گیرد و شیء ساده می‌خواهد. سازنده‌ی اتوماسیون در Zapier یا Make فید XML یک تأمین‌کننده را وارد جریانی می‌کند که با JSON بهتر کار می‌کند. مهندس داده فایل‌های پیکربندی یک برنامه‌ی قدیمی جاوا را منتقل می‌کند، یا دانشجویی فید RSS را برای یک پروژه‌ی درسی به‌صورت JSON لازم دارد. همه همان ساختار را بدون کروشه‌های زاویه‌دار می‌خواهند.

تبدیل XML به JSON: نگاشت تگ‌ها، ویژگی‌ها و متن

ورودی XML: یک سفارش با یک ویژگی، یک مشتری و دو کالا
<order id="A-77">
  <customer>Lena Ortiz</customer>
  <total currency="EUR">59.90</total>
  <item sku="0042">چراغ مطالعه</item>
  <item sku="0108">لامپ LED</item>
</order>
هر بخش از سفارش بالا در JSON چگونه دیده می‌شود
ساختار XMLنمونهنتیجه در JSON
عنصر ریشه<order>کلید سطح بالای order
ویژگی (attribute)id="A-77""@id": "A-77"
عنصر فقط با متن<customer>"customer": "Lena Ortiz"
متن به‌همراه ویژگیتگ <total currency="EUR">{"@currency": "EUR", "#text": "59.90"}
عنصر تکراریدو تگ <item>آرایه‌ی "item": [ … , … ]
نظر (comment)<!-- note -->حذف می‌شود؛ JSON نظر ندارد

XML

Extensible Markup Language

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

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

JSON

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

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

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

وقتی داده‌ی یک سیستم قدیمی‌تر یا سازمانی باید به یک برنامه‌ی وب، اسکریپت یا ابزار اتوماسیون برسد، XML به JSON تبدیل می‌شود: JSON در جاوااسکریپت به‌طور بومی پارس می‌شود و مستقیماً با دیکشنری‌های پایتون متناظر است.

ویژگی‌هایی از XML که در JSON جایی ندارند

هر دو قالب درخت را توصیف می‌کنند، اما XML امکانات اضافه‌ای دارد که JSON هرگز نداشته است. فضاهای نام که W3C در 1999 تعریف کرد، اجازه می‌دهند یک سند واژگان‌هایی مانند soap: و xsi: را با هم ترکیب کند؛ در JSON فقط به‌عنوان بخشی از نام کلیدها می‌مانند. نظرها و دستورهای پردازشی جایی ندارند و حذف می‌شوند. محتوای مختلط، یعنی متنی که میان تگ‌های فرزند آمده، مانند پاراگراف XHTML با یک کلمه‌ی پررنگ، در XML معتبر است اما در JSON دست‌وپاگیر می‌شود؛ پس XML سندمانند بهتر است به HTML یا Markdown تبدیل شود تا JSON.

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

پرسش‌های رایج دربارهٔ تبدیل XML به JSON

چرا یک عنصر در یک فایل آرایه است و در فایل دیگر شیء؟

مبدل فقط همان چیزی را می‌بیند که در سند هست. اگر یک سفارش سه تگ item داشته باشد، items آرایه می‌شود؛ اگر یکی داشته باشد، چیزی برای تکرار وجود ندارد و به یک شیء تکی تبدیل می‌شود. کدی که JSON را می‌خواند باید هر دو حالت را بپذیرد، یا پیش از حلقه، شیء تکی را درون یک آرایه قرار دهد.

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

هر ویژگی (attribute) به کلیدی تبدیل می‌شود که پیش از نامش @ آمده است؛ پس currency="EUR" به "@currency": "EUR" تبدیل می‌شود. وقتی یک عنصر هم ویژگی دارد و هم متن، متن در کلید #text کنار آن‌ها قرار می‌گیرد. این قرارداد از تداخل ویژگی‌ها و عنصرهای فرزند با نام مشترک جلوگیری می‌کند.

آیا اعداد داخل XML به عدد JSON تبدیل می‌شوند؟

XML نوع داده‌ی خاص خودش را ندارد؛ 42 و "42" در یک تگ یکسان دیده می‌شوند. به همین دلیل مقدارها به‌صورت رشته خارج می‌شوند و کدپستی‌ها و شناسه‌هایی مثل 007 سالم می‌مانند. فیلدهای موردنیاز کدتان را پس از پارس به عدد تبدیل کنید.

پیشوندهای فضای نام مانند soap:Envelope چه می‌شوند؟

پیشوند بخشی از نام کلید باقی می‌ماند؛ پس envelope به‌صورت soap:Envelope و اعلان فضای نام به‌صورت کلید @xmlns:soap دیده می‌شود. این کار عنصرهای واژگان‌های مختلف را از هم جدا نگه می‌دارد؛ اگر فقط با یکی کار می‌کنید، پیشوندها را در کدتان حذف کنید.

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

بله، با تبدیل JSON به XML. با همان قرارداد @ و #text، ویژگی‌ها دوباره به صورت ویژگی برمی‌گردند. نظرها (comments) و تورفتگی اصلی برنمی‌گردند، چون JSON هرگز آن‌ها را نگه نداشته است.