تحويل JSON إلى XML
أنشئ مستند XML صالحًا من JSON: تختار بنفسك اسمي وسم الجذر ووسم العنصر، والمفاتيح التي لا يقبلها XML تُصلَح بدلًا من حذفها.
أفلت ملفاتك هنا
.json, .ndjson, .txt · حتى 300 م.ب
إعدادات إضافيةإعدادات أقل
طريقة تحويل إلى XML
- 1
إفلات ملف JSON
أضف ملفًا واحدًا أو حتى 20 ملفًا. يُقرأ النص ويُحلَّل داخل علامة التبويب هذه في متصفحك، وخطأ الصياغة يحدد السطر والعمود بدقة.
- 2
تسمية وسم الجذر ووسم العنصر
الجذر يحيط بالمستند كله، واسم العنصر يتكرر لكل مدخل في المصفوفة. والمفاتيح التي تبدأ ببادئة السمات تصير سمات.
- 3
التحويل وتنزيل ملف XML
انقر على الزر لتحصل على مستند منسق بمسافات بادئة يبدأ بتصريح XML. والدفعة تصلك في أرشيف ZIP واحد.
مفاتيح لا يقبلها XML أسماءً للوسوم
مفاتيح الكائنات في JSON تكاد تكون بلا قيود، أما أسماء العناصر في XML فليست كذلك. «2024 sales» و«order id» والنص الفارغ كلها مفاتيح صالحة، ولا يمكن كتابة أي منها وسمًا. وحذف هذه الحقول بصمت يعني فقدان بيانات، لذلك تصير الأحرف غير الصالحة شرطات سفلية، ويُضاف الحرف n قبل الاسم الذي يبدأ برقم، وتصلك مع النتيجة القائمة الكاملة بكل اسم: ما كان وما صار.
أحرف يمنعها XML منعًا تامًا
التهريب (escaping) يتكفل بعلامة & والأقواس الزاوية. أما أحرف التحكم التي تقل عن 0x20 فمشكلة مختلفة: يرفضها XML 1.0 مهما كانت طريقة كتابتها، ولا ينقذها مرجع كيان (entity) ولا كتلة CDATA. وحرف 0x0B واحد شارد لُصق من خلية في جدول بيانات يكفي لجعل المستند كله غير قابل للتحليل، لذلك تُحذف هذه البايتات وتُعد، ويظهر عددها بجانب النتيجة.
السمات والعقد النصية وقيم null
المفتاح الذي يبدأ ببادئة السمات، وهي @_ افتراضيًا، يصير سمة للعنصر الأب بدلًا من عنصر ابن، ومفتاح النص يحمل نص العنصر نفسه. في JSON قيمة null، ولا مقابل لها في XML، لذلك الخيار لك: عنصر فارغ، أو عنصر معلَّم بالسمة xsi:nil، أو لا عنصر أصلًا.
الملف لا يغادر علامة التبويب هذه
قراءة الملف وتحليل JSON وإصلاح الأسماء وتوليد نص XML، كل ذلك يجري في متصفحك، في خيط عامل منفصل (worker)، بشيفرة وصلت مع الصفحة. لا خطوة رفع، ولا طابور معالجة، ولا حساب. أغلق علامة التبويب فيختفي الملف، لأنه لم تُصنع منه نسخة في أي مكان آخر أصلًا.
الأسئلة الشائعة
كيف أحدد اسم العنصر الجذر؟
اسم الجذر هو أول حقل في الصفحة، وقيمته الافتراضية root. ويجب أن يكون اسمًا صالحًا في XML (حروفًا وأرقامًا ونقاطًا وشرطات وشرطات سفلية، ولا يبدأ برقم ولا بالبادئة المحجوزة xml)، وإذا لم يكن كذلك تُنبَّه مباشرة مع اقتراح للإصلاح.
كيف أحوّل مفتاح JSON إلى سمة XML؟
أضف @_ إلى بداية المفتاح في ملف JSON، فيصير سمة للعنصر الذي يحتويه بدلًا من وسم متداخل. ويمكن تغيير البادئة بحيث لا تزيد على ثلاثة أحرف، ومسحها يعطل تحويل المفاتيح إلى سمات كليًا، فيصير كل مفتاح عنصرًا.
ماذا يحدث للمفاتيح التي لا تصلح أسماءً لوسوم XML؟
افتراضيًا تُصلَح: تتحول الأحرف غير المسموح بها إلى شرطات سفلية، ويُضاف الحرف n قبل الرقم في بداية الاسم، والمفتاح الفارغ يأخذ اسم العنصر. وتحصل على تحذير يسرد ما أُعيدت تسميته. ويمكنك أيضًا تطبيق كل الإصلاحات بصمت، أو إيقاف التحويل برسالة خطأ عند أول مفتاح غير صالح.
ماذا يحدث لقيم null؟
هناك ثلاثة خيارات. العنصر الفارغ يبقي الحقل ظاهرًا في المستند، وxsi:nil يعلّمه بأنه null صراحةً بالطريقة التي تتوقعها البرامج المعتمدة على المخطط (schema)، ويصرّح بمساحة الأسماء في الجذر، والتخطي يُسقط الحقل. والعناصر الفارغة هي الافتراضي لأن نتيجتها أكثر قابلية للتوقع عند التحويل ذهابًا وإيابًا.
متى أحتاج إلى CDATA؟
نادرًا، لأن التهريب العادي صحيح دائمًا. يفيد CDATA في الغالب في تسهيل القراءة حين تحتوي القيم على نص كثير يشبه الوسوم: فعّله، فتوضع النصوص التي يزيد طولها على 200 حرف، أو التي تحتوي على أقواس زاوية وعلامة &، في كتلة CDATA. وإذا وُجد ]]> حرفيًا داخل قيمة كهذه، يُقسم على كتلتين ليبقى الإخراج صالحًا.
هل يُحفظ ترتيب المفاتيح؟
نعم. تُكتب العناصر بترتيب ظهور المفاتيح في ملف JSON الأصلي، وتحافظ مدخلات المصفوفات على ترتيب فهارسها. وتُكتب السمات قبل العناصر الأبناء لأن XML يتطلب ذلك، لكنها فيما بينها تتبع ترتيب المصدر أيضًا، فيبقى الإخراج ثابتًا بما يكفي لمقارنته بين تشغيل وآخر.
هل يُرفع ملفي إلى أي مكان؟
لا. كل شيء يجري في علامة التبويب في متصفحك، ومحلل JSON ومولّد XML جزء من الصفحة نفسها لا خدمة في مكان ما. لا يوجد خادم يمكن أن يستقبل الملف، لذلك لا يُخزَّن شيء ولا يُسجَّل ولا يُحتفظ به بعد إغلاق علامة التبويب.