Конвертер XML в JSON
Превратите документы XML в чистый JSON.
Работает в браузере. То, что вы вводите, никуда не отправляется.
- Сохраняет атрибуты
- Повторяющиеся теги становятся массивами
- Точное место ошибки
Как конвертировать XML в JSON
- Вставьте свой XML или загрузите файл.
- Оставьте или уберите атрибуты флажком.
- Скопируйте JSON или скачайте его.
Пример: XML на входе, JSON на выходе
| XML | JSON |
|---|---|
| <name>Sam</name> | {"name":"Sam"} |
| <item id="5">Widget</item> | {"item":{"@_id":"5","#text":"Widget"}} |
| <tag>a</tag><tag>b</tag> | {"tag":["a","b"]} |
Что сохраняет XML в JSON
- Атрибуты, при включённом флажке, как ключи, начинающиеся с @_.
- Текстовое содержимое рядом с атрибутами под ключом #text, когда у элемента есть и то, и другое.
- Повторяющиеся соседние теги как массив JSON, в порядке следования по документу.
- Числа с ведущим нулём, вроде 007, сохранённые как текст, чтобы ID никогда не менялись.
Частые причины некорректного XML
- Незакрытый или несовпадающий тег.
- Одиночный & или < внутри текста, который нужно записать как & или <.
- Два элемента на верхнем уровне, ведь корректный XML допускает только один корень.
Где помогает XML в JSON
- Чтение ответа старого SOAP API внутри современного фронтенда на основе JSON.
- Конвертация ленты RSS или Atom в JSON для перебора скриптом.
- Просмотр конфигурационного файла, экспортированного из корпоративного софта, который понимает только XML.
- Проверка того, что реально содержит экспорт устаревшей системы, перед написанием полноценного пайплайна импорта под него.
Частые вопросы о XML в JSON
Что происходит с атрибутами XML?
Они сохраняются как поля, чьи имена начинаются с @_, поэтому id="5" становится "@_id": "5". Отключите "Включать атрибуты", чтобы их не было.
Как обрабатываются повторяющиеся элементы?
Соседние элементы с одинаковым именем тега становятся массивом JSON. Тег, который встречается только один раз, остаётся одиночным значением.
Числа конвертируются?
Обычные числа вроде 42 становятся числами JSON. Значения с ведущим нулём, например 007, остаются текстом, чтобы коды и ID не менялись.
Почему написано, что мой XML некорректный?
Обычно тег не закрыт, закрывающий тег не совпадает или текст содержит одиночный амперсанд, который нужно записать как &. В ошибке названы строка и столбец.
Сохраняются ли пространства имён XML?
Префикс пространства имён остаётся частью имени тега, например ns:id становится ключом, буквально называющимся ns:id, ведь конвертер не разрешает URI пространств имён во что-либо ещё.
Что происходит с самозакрывающимся тегом вроде <br/>?
Он становится значением с пустой строкой, тем же результатом, что даёт более длинный вариант <br></br>.
Что происходит с комментариями XML?
Они отбрасываются. В JSON нет синтаксиса комментариев, куда их можно перенести, поэтому конвертируются только данные элементов.
Можно конвертировать XML-файл с DOCTYPE?
Да, DOCTYPE считывается, а затем не включается в вывод JSON, ведь он только управляет валидацией XML и не несёт собственных данных для переноса.