Utilia

محوّل JSON إلى XML

حوّل JSON إلى XML وXML إلى JSON في متصفحك، مع معالجة السمات والعناصر المتكررة ومقاطع CDATA. لا يُرفع أي شيء إلى خادم.

اتجاه التحويل

كيفية استخدام محوّل JSON إلى XML

  1. اختر اتجاه التحويل: JSON → XML أو XML → JSON.
  2. الصق بياناتك، أو انقر فتح ملف لتحميل ملف .json أو .xml (حتى 10 MB).
  3. اضبط الخيارات: المسافة البادئة (مسافتان أو 4 مسافات أو علامة جدولة أو بلا (مضغوط)) للاتجاهين، والعنصر الجذر وإضافة تصريح XML لاتجاه JSON → XML، وتحويل الأرقام والقيم المنطقية لاتجاه XML → JSON.
  4. انقر تحويل. تتحدّث النتيجة أيضًا أثناء الكتابة، وتعرض الأخطاء رقم السطر والعمود حيث وُجدت المشكلة.
  5. انسخ النتيجة أو نزّلها. يعيد زر عكس الاتجاه الناتج إلى مربع الإدخال لتتحقق من رحلة الذهاب والإياب.

كيف يقابل JSON بنية XML

لا يشترك XML وJSON في نموذج البيانات نفسه، لذا يتّبع كل محوّل اصطلاحًا معيّنًا. تعتمد هذه الأداة الاصطلاح الواسع الانتشار في مكتبة fast-xml-parser:

JSON XML
{"title": "Dune"} <title>Dune</title>
{"book": {"@id": "42"}} <book id="42"/>
{"p": {"@lang": "en", "#text": "Hi"}} <p lang="en">Hi</p>
{"tag": ["a", "b"]} <tag>a</tag><tag>b</tag>
  • المفاتيح التي تبدأ بـ@ تصبح سمات (attributes)، ويحمل المفتاح #text نص العنصر الذي له سمات أيضًا.
  • المصفوفة تصبح عنصرًا متكررًا بالاسم نفسه.
  • يحتاج مستند XML إلى عنصر جذر واحد بالضبط. فإذا كان JSON كائنًا بمفتاح واحد قيمته كائن، يصبح ذلك المفتاح هو الجذر. وإلا فتُغلَّف القيمة كلها بالعنصر المسمّى في العنصر الجذر (root افتراضيًا)، وتصبح عناصر المصفوفة في المستوى الأعلى عناصر <item>.
  • تُصحَّح المفاتيح التي ليست أسماء XML صالحة: تتحول المسافات والرموز إلى _، ويُضاف _ في بداية الاسم الذي يبدأ برقم ("1st place" ← <_1st_place>).
  • تعطي null والسلاسل الفارغة عنصرًا فارغًا مثل <note/>. وتُهرَّب المحارف الخاصة (& و< و> وعلامات الاقتباس).

كيف يقابل XML بنية JSON

  • تصبح السمات مفاتيح مسبوقة بـ@، ويصبح النص المختلط #text.
  • تصبح العناصر المتكررة مصفوفة، أما العنصر الذي يظهر مرة واحدة فيصبح قيمة مفردة.
  • تُدمج مقاطع CDATA في النص، وتُفكّ الكيانات مثل &amp;. ويُحذف تصريح XML وتعليمات المعالجة والتعليقات.
  • مع تحويل الأرقام والقيم المنطقية، يصبح <price>12.5</price> الرقم 12.5، وتصبح true قيمة منطقية، بينما تبقى القيم ذات الصفر البادئ مثل 007 نصوصًا. ألغِ الخيار لتبقى كل القيم نصًا.

قبل التحويل، يُفحص XML للتأكد من سلامة بنيته: يُبلَّغ عن وسم إغلاق ناقص، أو وسم غير متطابق، أو محرف & غير مهرَّب، مع رقم السطر والعمود.

الأسئلة الشائعة

هل تُرسل بياناتي إلى خادم؟

لا. يجري التحويل بالكامل في متصفحك، فتبقى خلاصات XML ورسائل SOAP وملفات الإعدادات على جهازك.

لماذا يصبح عنصر ما مصفوفة في ملف وكائنًا في ملف آخر؟

لا يحدد XML ما إذا كان العنصر قائمة. فعندما يظهر <tag> مرتين يصبح مصفوفة، وعندما يظهر مرة واحدة يصبح قيمة مفردة. إذا كانت شيفرتك تتوقع مصفوفة، فعالج الحالتين، أو أضف عنصرًا ثانيًا عند الاختبار.

لماذا لا تكون رحلة الذهاب والإياب متطابقة دائمًا؟

بعض المعلومات ليس لها مقابل في الجهة الأخرى: التعليقات، وترتيب المحتوى المختلط، والفرق بين مصفوفة بعنصر واحد وقيمة مفردة. أما مع مستندات البيانات المعتادة، فإن تحويل JSON → XML → JSON يعيد البنية نفسها.

هل يمكنني استخدام فضاءات الأسماء (namespaces)؟

نعم. تبقى الأسماء المسبوقة مثل soap:Envelope والسمات مثل @xmlns:soap كما هي في الاتجاهين.

هل تتحقق الأداة من XML مقابل مخطط XSD؟

لا. تتحقق من سلامة بنية XML، لكنها لا تتحقق من صحته مقابل DTD أو مخطط XSD.