حوّل JSON إلى XML صحيح الصياغة في متصفحك. اختر اسم عنصر الجذر، وأدرج أو احذف إعلان XML، واختر مسافتين أو 4 مسافات أو بدون مسافة بادئة.
قم بتحويل شجرة JSON إلى عناصر، بأمان. الصق JSON واحصل على XML صحيح الصياغة. تصبح المصفوفات عناصر متكررة، وتُحوَّل أسماء المفاتيح غير الصالحة إلى أسماء عناصر قانونية، والإعلان والمسافة البادئة بين يديك.
إخراج XML
تحويل JSON إلى XML دون فقدان الأعصاب
النموذجان لا يتطابقان
يحتوي JSON على ستة أنواع من القيم — كائن، مصفوفة، سلسلة، رقم، قيمة منطقية وnull — وكل منها يصف نفسه بنفسه. يحتوي XML على نوع بدائي واحد بالضبط: النص. كل شيء آخر هو بنية مبنية من عناصر وسمات. لا يوجد تحويل رسمي بين الاثنين، ولهذا كل محول تصادفه يتصرف بشكل مختلف قليلاً.
الاتفاقية المستخدمة هنا هي الأكثر شيوعًا والأكثر قابلية للتنبؤ. الكائن يصبح عنصرًا يكون أبناؤه مفاتيحه. السلسلة أو الرقم أو القيمة المنطقية تصبح عنصرًا يحتوي على شكلها النصي. null يصبح عنصرًا فارغًا. يبقى هذا المصفوفات، التي ليس لها مقابل في XML إطلاقًا: الحل المعياري هو تكرار العنصر الأب مرة لكل عنصر، بحيث يصبح {"item": [1, 2]} هو <item>1</item><item>2</item> بدلاً من اختراع عنصر غلاف لن يتوقعه المخطط المستقبِل.
ليس كل مفتاح JSON اسم عنصر قانوني
تتبع أسماء عناصر XML قاعدة الإنتاج NCName: تبدأ بحرف أو شرطة سفلية، ثم تسمح بالأحرف والأرقام والواصلات والنقاط والشرطات السفلية. لا مسافات، ولا شرطات مائلة، ولا رقم بادئ، ولا شيء يبدأ بالأحرف xml بأي حالة، وهي محجوزة بالمواصفات.
لا توجد لمفاتيح JSON مثل هذه القيود — فهي سلاسل عشوائية، والحمولات الحقيقية مليئة بـ "user name" و"2024" و"@type". إصدار تلك كما هي ينتج مستندًا لن يقبله أي محلل. لذلك تُستبدل الأحرف غير الصالحة بشرطات سفلية وتُضاف شرطة سفلية بادئة عندما يبدأ الاسم برقم. إنها خطوة خاسرة للبيانات، لذا إذا كانت أسماء العناصر مهمة لاحقًا، أعد تسمية المفاتيح في JSON أولاً بدلاً من ترك المحول يخمن.
الإعلان والمسافة البادئة وما هو آمن للتغيير
إعلان <?xml ... ?> اختياري لمستندات UTF-8؛ يفترض المحللون UTF-8 عند غيابه. أدرجه عندما يُكتب الملف على القرص أو يُقدَّم عبر HTTP أو يُسلَّم إلى خط أنابيب مؤسسي صارم، واتركه عندما يُدمج المقتطف داخل مستند أكبر، حيث يكون الإعلان الثاني خطأ فادحًا.
المسافة البادئة هي الخيار الأكثر دقة. بخلاف JSON، فإن المسافات البيضاء في XML داخل عنصر هي جزء من المحتوى، لذا فإن الطباعة الجميلة تغيّر المستند تقنيًا: العنصر الذي كان يحمل Ada يحمل الآن سطرًا جديدًا وبعض المسافات وAda وسطرًا جديدًا والمزيد من المسافات. تتجاهل معظم المخططات ذلك، لكن التحقق من التوقيعات وأقسام xml:space="preserve" والتنسيقات الحساسة للمسافات لا تتجاهله. استخدم المسافة البادئة أثناء القراءة، وبدّل إلى إخراج مصغّر لأي شيء ستستهلكه آلة.
الأسئلة الشائعة
هل يتم رفع JSON الخاص بي إلى أي مكان؟
لا. يتم تحليل المستند وتسلسله بالكامل في متصفحك باستخدام دوال JSON المدمجة، لذلك لا يتم إرسال أي شيء إلى خادم.
كيف يتم تمثيل مصفوفات JSON؟
بتكرار العنصر الأب مرة لكل عنصر. {"item": [1, 2]} يصبح <item>1</item><item>2</item>، وهي الاتفاقية التي تتوقعها معظم مخططات XML.
ماذا يحدث للمفاتيح التي ليست أسماء عناصر صالحة؟
تصبح الأحرف غير القانونية شرطات سفلية وتُضاف شرطة سفلية بادئة إذا بدأ الاسم برقم. أعد تسمية المفاتيح أولاً إذا كانت الأسماء الدقيقة مهمة.
لماذا ينقص إخراجي إعلان XML؟
إنه اختياري ويتحكم فيه مربع اختيار. يفترض المحللون UTF-8 بدونه، ويجب حذفه عندما يُدمج الإخراج داخل مستند آخر.
هل تُكتب القيم كسمات؟
لا. كل قيمة تصبح نص عنصر. لا يمكن استنتاج السمات من JSON الخام، لذا فإن اختيارها يتطلب مخططًا لا تملكه هذه الأداة.
هل تغيّر المسافة البادئة معنى المستند؟
نعم تقنيًا، لأن المسافات البيضاء داخل عنصر هي محتوى. تتجاهل معظم المخططات ذلك، لكن استخدم إخراجًا مصغّرًا لـ XML الموقّع أو الحساس للمسافات.