פועל על המכשיר שלכם · הקובץ לא עוזב את המכשיר.
הדביקו או גררו JSON וקבלו מסמך XML עם הצהרה בראשו ואלמנט אחד לכל מפתח. מסמך עם מפתח יחיד ברמה העליונה משתמש בו כאלמנט השורש; כל מסמך אחר נכנס לתוך <root>. רשימה הופכת לאלמנטים חוזרים על שם המפתח שלה – "items": [..] נותן כמה אלמנטים <items> – ורשימה ברמה העליונה הופכת לאלמנטים <item> בתוך <root>.
מפתחות שמתחילים ב-@ הופכים למאפיינים (attributes), ומפתח "#text" הופך לטקסט של האלמנט – הצורה שכלי המרת XML ל-JSON כותב, כך שמסמך שהומר שם חוזר לכאן כאותו XML. כל ערך אחר הוא טקסט בתוך האלמנט שלו, null הופך לאלמנט ריק, והמסמך מוזח בשני רווחים לכל רמה. מפתחות ש-XML לא מקבל כשמות – שמתחילים בספרה, מכילים רווחים או סמלים – מתוקנים עם קווים תחתונים, כך שהתוצאה תמיד מתפענחת.
הטקסט מוברח נכון (&, <, > ובמאפיינים גם מירכאות ומעברי שורה); תווי בקרה, ש-XML 1.0 לא יכול להכיל בכלל, מוסרים. הקידוד הוא UTF-8, ורואים את 200 השורות הראשונות לפני ההורדה. שום דבר לא מועלה.
לא מיועד ל: התאמה לסכמת XML מסוימת (SOAP, RSS, תקן חשבוניות) – שמות האלמנטים באים ממפתחות ה-JSON שלכם, לא מסכמה.
מפתח שמתחיל ב-@ הופך למאפיין, ומפתח "#text" הופך לטקסט של האלמנט, כך ש-{"item": {"@id": 3, "#text": "A"}} נותן <item id="3">A</item>. כשלמסמך יש מפתח יחיד ברמה העליונה, המפתח הזה הוא אלמנט השורש; אחרת הכול נכנס לתוך <root>.
תו ש-XML לא מרשה בשם הופך לקו תחתון, ושם שמתחיל בתו שאסור בהתחלה, כמו ספרה, מקבל קו תחתון לפניו: "1st place" הופך ל-<_1st_place>. נקודתיים נשמרות רק כשהקידומת שלהן מוצהרת ברמה גבוהה יותר, כמו ב-"@xmlns:soap"; "soap:Body" שלא הוצהר הופך ל-<soap_Body>, כי שום מפענח שמכיר מרחבי שמות לא היה קורא אותו אחרת. אותיות מכל כתב מותרות, כך שמפתח כמו "שם" או "名前" נשאר כפי שנכתב.
כל ערך נכתב כטקסט, ומספרים בדיוק כמו ב-JSON: 1.0 נשאר 1.0 ו-12345678901234567890 שומר על כל ספרה. null ואובייקט ריק הופכים שניהם לאלמנט ריק כמו <note/>, ורשימה ריקה לא כותבת כלום, כך שב-XML אי אפשר להבדיל בין השלושה.
תווי בקרה, כלומר קודים מתחת ל-32 מלבד טאב, ירידת שורה וחזרת גררה, לא ניתנים לכתיבה ב-XML 1.0 בכלל, אפילו לא כמספר כמו , ולכן הם מוסרים. חזרת גררה נכתבת כ- כדי שמפענח ישמור עליה. בערכי מאפיינים נכתבים כהפניות גם מירכאות, טאבים ומעברי שורה, כי אחרת מפענח היה הופך אותם לרווחים.
אלמנטים חוזרים יכולים לבטא רק רמה אחת של רשימה. "m": [[1, 2], [3]] הופך לשלושה אלמנטים <m> שמכילים 1, 2 ו-3, והעובדה ש-1 ו-2 היו שייכים יחד הולכת לאיבוד. רשימה ברמה העליונה מתנהגת באותה צורה: [1, [3, 4]] נותן שלושה אלמנטים <item>. אם הקיבוץ חשוב, עטפו קודם כל רשימה פנימית באובייקט: [{"values": [1, 2]}, {"values": [3]}] נותן שני אלמנטים <item>, שכל אחד מהם מכיל <values> משלו.
מסמך שעבר דרך /xml-to-json חוזר כאותם אלמנטים, מאפיינים, קידומות מרחבי שמות וטקסט, בלי עטיפה נוספת סביבו. מה שה-JSON מעולם לא החזיק לא חוזר: הערות וה-DOCTYPE, המיקום של טקסט בין אלמנטים בנים, והסדר בין אלמנטים בשמות שונים, שחוזרים מקובצים לפי שם. אם זיהוי הסוגים היה פועל ב-/xml-to-json, ערך כמו TRUE חוזר כ-true; כבו שם את הזיהוי כדי שהמסמך יחזור מילה במילה.
עמוד זה בשפות אחרות: English · العربية · Deutsch · Français · Español · Русский · Português · 中文 · हिन्दी · Türkçe · فارسی · اردو · Bahasa Indonesia · বাংলা