Как конвертировать JSON в XML
- Вставьте JSON или откройте файл
.json. XML появляется рядом прямо по мере ввода. - Задайте имя корневого элемента (или оставьте поле пустым, чтобы использовать единственный ключ верхнего уровня), префикс атрибутов и отступы.
- Скопируйте XML или скачайте его как файл
.xml.
Как JSON сопоставляется с XML
| JSON | XML |
|---|---|
{"name": "Ada"} | <name>Ada</name> |
{"@id": "7"} | атрибут id="7" у родительского элемента |
{"#text": "Hello"} | текстовое содержимое родительского элемента |
{"tag": ["a", "b"]} | <tag>a</tag><tag>b</tag> |
{"note": null} | <note/> |
{"2nd key": 1} | <_2nd_key>1</_2nd_key> — недопустимые имена исправляются |
массив верхнего уровня [1, 2] | <root><item>1</item><item>2</item></root> |
&, <, > в тексте | &, <, > |
JSON vs XML: в чём разница
В JSON есть массивы, числа, логические значения и null; в XML — только элементы, атрибуты и текст, поэтому типы не сохраняются: и 42, и "42" превращаются в текст 42. В XML, в свою очередь, есть атрибуты, пространства имён и смешанное содержимое, которых нет в JSON. Если позже вы планируете конвертировать XML обратно в JSON, придерживайтесь используемых здесь распространённых соглашений — @ для атрибутов и #text для текстового содержимого: их понимает большинство конвертеров.
Часто задаваемые вопросы
Как массивы JSON преобразуются в XML?
Каждый элемент массива становится XML-элементом с именем ключа массива, поэтому {"book": [ … ]} превращается в несколько элементов <book>. Элементы массива верхнего уровня становятся элементами <item> внутри корневого.
Как создать XML-атрибуты из JSON?
Добавьте к ключу префикс @: {"user": {"@id": 7, "name": "Ada"}} превращается в <user id="7"><name>Ada</name></user>. Префикс можно изменить в настройках.
Что происходит с ключами, которые не являются допустимыми именами XML?
Символы, недопустимые в именах XML, например пробелы, заменяются подчёркиваниями, а к именам, которые начинаются с цифры или с «xml», в начало добавляется подчёркивание: "2nd key" превращается в <_2nd_key>.
Будет ли сгенерированный XML валидным?
Да. Специальные символы экранируются, каждое имя элемента допустимо, а у документа ровно один корневой элемент и, по желанию, XML-декларация в начале.