Конвертер XML в JSON онлайн
Атрибуты XML становятся ключами @, повторяющиеся элементы — массивами
Работает в браузере · файлы никуда не загружаются
Атрибуты записываются как @имя, текст в смешанном содержимом — как #text. Повторяющиеся соседние элементы с одним именем становятся массивом. Все значения остаются строками. Точный порядок смешанного содержимого не сохраняется. DTD не поддерживается.
Как пользоваться
- Вставьте XML-документ с одним корневым элементом.
- Проверьте ключи атрибутов и массивы из повторяющихся элементов.
- Скопируйте полученный JSON в своё приложение или инструмент анализа.
Правила преобразования
Корневой тег сохраняется как внешний ключ JSON. Атрибуты получают префикс @, например @id. Повторяющиеся дочерние элементы с одним именем внутри одного родителя становятся массивом. Элемент без атрибутов и дочерних элементов превращается в строку, а пустой элемент — в пустую строку. CDATA и стандартные ссылки на символы XML читаются как текст.
Если у элемента есть дочерние элементы, его непосредственный текст собирается в #text. Пробельные символы форматирования вокруг дочерних элементов отбрасываются. Взаимный порядок текста и вложенных элементов в смешанном содержимом не сохраняется. Комментарии и инструкции обработки опускаются. Префиксы пространств имён и атрибуты xmlns сохраняют исходные имена, без перестройки с учётом пространств имён.
Примеры
<r><item>Привет</item><item>中文😀</item></r> даёт массив item внутри r. <price currency="RUB">001</price> даёт @currency со значением RUB и #text со строкой 001.
Проверка и ограничения
Незакрытые теги, несколько корневых элементов и неизвестные сущности приводят к ошибке. Объявления DTD и сущностей не поддерживаются. Размер ввода — до миллиона символов, вложенность — до 64 уровней. Такое отображение удобно для просмотра данных, но это не сериализация XML без потерь. Результат — обычный текст, и всё преобразование происходит локально в браузере.
Частые вопросы
Преобразуются ли значения, похожие на числа, в числа?
Нет. Текст элементов и значения атрибутов остаются строками, поэтому ведущие нули, как в 001, сохраняются.
Сохраняется ли порядок в смешанном содержимом?
Нет. Непосредственный текст собирается в #text. Взаимное расположение текста и дочерних элементов не сохраняется.
Может ли инструмент загружать DTD или внешние сущности?
Нет. Объявления DOCTYPE и ENTITY отклоняются. Инструмент не загружает внешние документы и не раскрывает объявленные сущности.
Куда отправляется мой XML?
Никуда. Преобразование выполняется локально в браузере.