تحويل XML إلى JSON

الصق XML من خدمة ويب أو ملف تصدير لتحصل على JSON يسهل استخدامه في JavaScript وواجهات API الحديثة.

جارٍ تحميل الأداة…

المعالجة والخصوصية: تُحسب النتيجة داخل متصفحك ولا تُرسل بياناتك إلى أي خادم.

طريقة الاستخدام

  1. أدخل نص XML، تحويل الأرقام وtrue/false إلى أنواعها والمسافة البادئة.
  2. تظهر النتيجة فورًا وتتحدّث مع كل تعديل.
  3. انسخ النتيجة، أو انسخ رابطًا يحفظ القيم نفسها لمشاركتها.

طريقة الحساب

يُحلَّل XML بمحلل مدمج يتحقق من سلامة البنية. العنصر الذي يحوي نصا فقط يصبح نصا، والسمة تصبح مفتاحا يبدأ بالرمز @، والنص المجاور لعناصر أو سمات يصبح #text، والعناصر المتكررة بالاسم نفسه تصبح مصفوفة. تُحذف التعليقات وتعليمات المعالجة.

مثال

المدخلات: تحويل الأرقام وtrue/false إلى أنواعها = لا، المسافة البادئة = مسافتان. النتيجة: نص JSON: { "catalog": { "book": [ { "@id": "1", "@lang": "ar", "title": "مقدمة ابن خلدون", "author": "ابن خلدون", "price": "45" }, { "@id": "2", "@lang": "en", "title": "Arabian Sands", "author": "Wilfred Thesiger", "price": "60" } ] } }، عنصر الجذر: catalog، عدد العناصر: 9.

<?xml version="1.0" encoding="UTF-8"?>
<catalog>
  <book id="1" lang="ar">
    <title>مقدمة ابن خلدون</title>
    <author>ابن خلدون</author>
    <price>45</price>
  </book>
  <book id="2" lang="en">
    <title>Arabian Sands</title>
    <author>Wilfred Thesiger</author>
    <price>60</price>
  </book>
</catalog>
{
  "catalog": {
    "book": [
      {
        "@id": "1",
        "@lang": "ar",
        "title": "مقدمة ابن خلدون",
        "author": "ابن خلدون",
        "price": "45"
      },
      {
        "@id": "2",
        "@lang": "en",
        "title": "Arabian Sands",
        "author": "Wilfred Thesiger",
        "price": "60"
      }
    ]
  }
}

الحدود والملاحظات

  • النص المختلط بين العناصر يُجمع في مفتاح #text واحد، فيضيع موضعه بين العناصر.
  • الكيانات المعرّفة داخل DOCTYPE غير مدعومة، والمدعوم هو الخمسة القياسية والمراجع الرقمية.
  • بادئات النطاقات مثل ns:tag تبقى جزءا من اسم المفتاح.

أسئلة شائعة عن هذه الأداة

لماذا يظهر بعض العناصر مصفوفة وبعضها لا؟

العنصر الذي يتكرر تحت الأب نفسه يصبح مصفوفة، والعنصر الذي يظهر مرة واحدة يبقى قيمة مفردة، وهذا سلوك أغلب المحولات.

ماذا يعني @ و#text في النتيجة؟

المفتاح الذي يبدأ بالرمز @ هو سمة من الوسم مثل id، و#text هو النص داخل العنصر عندما يكون للعنصر سمات أو أبناء أيضا.

هل تبقى الأرقام نصوصا؟

نعم افتراضيا حتى لا يتغير شيء مثل 007 أو 2.50. فعّل خيار تحويل الأنواع لتصبح الأرقام القياسية وtrue وfalse قيما رقمية ومنطقية.