המרת JSON ל-XML

פועל על המכשיר שלכם · הקובץ לא עוזב את המכשיר.

הדביקו או גררו JSON וקבלו מסמך XML עם הצהרה בראשו ואלמנט אחד לכל מפתח. מסמך עם מפתח יחיד ברמה העליונה משתמש בו כאלמנט השורש; כל מסמך אחר נכנס לתוך <root>. רשימה הופכת לאלמנטים חוזרים על שם המפתח שלה – "items": [..] נותן כמה אלמנטים <items> – ורשימה ברמה העליונה הופכת לאלמנטים <item> בתוך <root>.

מפתחות שמתחילים ב-@ הופכים למאפיינים (attributes), ומפתח "#text" הופך לטקסט של האלמנט – הצורה שכלי המרת XML ל-JSON כותב, כך שמסמך שהומר שם חוזר לכאן כאותו XML. כל ערך אחר הוא טקסט בתוך האלמנט שלו, null הופך לאלמנט ריק, והמסמך מוזח בשני רווחים לכל רמה. מפתחות ש-XML לא מקבל כשמות – שמתחילים בספרה, מכילים רווחים או סמלים – מתוקנים עם קווים תחתונים, כך שהתוצאה תמיד מתפענחת.

הטקסט מוברח נכון (&, <, > ובמאפיינים גם מירכאות ומעברי שורה); תווי בקרה, ש-XML 1.0 לא יכול להכיל בכלל, מוסרים. הקידוד הוא UTF-8, ורואים את 200 השורות הראשונות לפני ההורדה. שום דבר לא מועלה.

איך המרת JSON ל-XML

  1. גררו קובץ JSON, או הדביקו JSON בתיבה.
  2. לחצו «המרה ל-XML».
  3. בדקו את התצוגה המקדימה והורידו את ה-.xml.

פורמטים נתמכים ומגבלות

קלט
JSON (.json) – קובץ או טקסט מודבק
פלט
XML 1.0, UTF-8, הצהרה בראש, מעוצב
שורש
המפתח היחיד ברמה העליונה, אחרת <root>; רשימה ברמה העליונה הופכת לאלמנטים <item>
רשימות
אלמנטים חוזרים על שם המפתח
איפה זה רץ
בדפדפן – בלי העלאה

לא מיועד ל: התאמה לסכמת 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 בכלל, אפילו לא כמספר כמו &#1;, ולכן הם מוסרים. חזרת גררה נכתבת כ-&#13; כדי שמפענח ישמור עליה. בערכי מאפיינים נכתבים כהפניות גם מירכאות, טאבים ומעברי שורה, כי אחרת מפענח היה הופך אותם לרווחים.

רשימות של רשימות מאבדות את הקיבוץ

אלמנטים חוזרים יכולים לבטא רק רמה אחת של רשימה. "m": [[1, 2], [3]] הופך לשלושה אלמנטים <m> שמכילים 1, 2 ו-3, והעובדה ש-1 ו-2 היו שייכים יחד הולכת לאיבוד. רשימה ברמה העליונה מתנהגת באותה צורה: [1, [3, 4]] נותן שלושה אלמנטים <item>. אם הקיבוץ חשוב, עטפו קודם כל רשימה פנימית באובייקט: [{"values": [1, 2]}, {"values": [3]}] נותן שני אלמנטים <item>, שכל אחד מהם מכיל <values> משלו.

מ-XML ל-JSON ובחזרה

מסמך שעבר דרך /xml-to-json חוזר כאותם אלמנטים, מאפיינים, קידומות מרחבי שמות וטקסט, בלי עטיפה נוספת סביבו. מה שה-JSON מעולם לא החזיק לא חוזר: הערות וה-DOCTYPE, המיקום של טקסט בין אלמנטים בנים, והסדר בין אלמנטים בשמות שונים, שחוזרים מקובצים לפי שם. אם זיהוי הסוגים היה פועל ב-/xml-to-json, ערך כמו TRUE חוזר כ-true; כבו שם את הזיהוי כדי שהמסמך יחזור מילה במילה.

שאלות נפוצות

האם הקובץ שלי נשלח לשרת?
לא. ההמרה מתבצעת כולה בדפדפן, בכוח המכשיר שלכם, והקובץ לא יוצא מהמחשב או מהטלפון. אחרי שהשתמשתם בכלי פעם אחת, הוא ממשיך לעבוד גם בלי אינטרנט (כלי הווידאו, זיהוי הטקסט והסרת הרקע מורידים את המנוע שלהם מהאתר הזה בפעם הראשונה).
איך רשימות מיוצגות?
כאלמנטים חוזרים. {"items": [1, 2]} הופך ל-<items>1</items><items>2</items>. רשימה בראש המסמך הופכת לאלמנטים <item> בתוך <root>. רשימה ריקה לא מייצרת אלמנט בכלל.
מה עם מפתחות עם רווחים או ספרות?
שמות אלמנטים ב-XML לא יכולים להתחיל בספרה או להכיל רווחים. מפתחות כאלה מתוקנים: "1st place" הופך ל-_1st_place, "unit price" ל-unit_price. כל השאר נשמר כמו שהוא.
אפשר לקבל מאפיינים במקום אלמנטים בנים?
כן: שימו @ לפני המפתח. {"item": {"@id": 3, "name": "A"}} נותן <item id="3"><name>A</name></item>. זו הצורה שכלי המרת XML ל-JSON כותב, כך שהמרה הלוך ושוב מחזירה את אותו מסמך.

כלים קשורים

עוד בגיליונות ונתונים

עמוד זה בשפות אחרות: English · العربية · Deutsch · Français · Español · Русский · Português · 中文 · हिन्दी · Türkçe · فارسی · اردو · Bahasa Indonesia · বাংলা