XML to JSON Converter
Convert XML data or files to JSON format instantly in your browser. Supports custom indentation and handles nested structures.
Select XML file
or drag and drop here
Convert XML data or files to JSON format instantly in your browser. Supports custom indentation and handles nested structures.
or drag and drop here
XML и JSON — это форматы обмена данными, но они пришли из разных эпох Интернета. XML, стандартизированный в 1998 году, был разработан как самоописывающийся формат разметки с атрибутами, пространствами имен и проверкой схемы. JSON появился в начале 2000-х годов как более легкий формат, лучше подходящий для среды выполнения JavaScript и современных API. Большинство новых веб-API поддерживают JSON; многие старые системы — службы SOAP, RSS-каналы, файлы конфигурации, корпоративные интеграции — по-прежнему создают XML. Преобразование между ними — одна из наиболее распространенных задач взаимодействия в современной разработке.
Преобразование не происходит полностью без потерь, поскольку эти два формата обладают разной выразительной силой. XML имеет атрибуты (которых изначально нет в JSON), различает текстовое содержимое и имена элементов и поддерживает смешанное содержимое (элементы, содержащие как текстовые, так и дочерние элементы). Простая модель объекта/массива JSON не может напрямую представлять эти функции, поэтому преобразователи применяют соглашения: атрибуты становятся ключами с префиксом @, текстовое содержимое становится ключом #text и т. д.
Этот преобразователь анализирует XML с помощью встроенного в браузер DOMParser и обрабатывает полученное дерево DOM для создания JSON. Элементы с тем же именем тега, что и у родственных элементов, собираются в массивы; атрибуты помещаются в специальные ключи; Пространства имен и инструкции обработки сохраняются, если они присутствуют. В результате получается удобочитаемый JSON, который разумно возвращается к XML.
Большинству современных кодов приложений удобнее использовать JSON. JavaScript анализирует JSON изначально, модуль Python json находится в стандартной библиотеке, и практически любой другой язык имеет эквивалентную первоклассную поддержку JSON. Обработка XML требует импорта дополнительных библиотек и написания большего количества шаблонов. Преобразование входящего XML в JSON перед обработкой часто является самым быстрым путем от внешнего XML-канала к внутренней структуре данных.
Инструментарий также опирается на JSON. Улучшителей JSON, валидаторов, валидаторов схемы, языков запросов (jq, JSONPath) и средств просмотра имеется в изобилии; XML-эквиваленты меньше и зачастую старше. Работа с JSON открывает более богатую экосистему инструментов.
Вставьте XML, получите JSON.
DOMParser создает XML DOM, идентичный тому, который браузер использует для страниц XHTML. Конвертер рекурсивно просматривает этот DOM. Для каждого элемента создается объект JSON: атрибуты становятся ключами с префиксом @ (например, @id, @class); дочерние элементы элемента рекурсивно образуют ту же структуру; текстовый контент, если он присутствует рядом с дочерними элементами, находится под ключом #text.
Повторяющиеся дочерние элементы с одинаковым именем тега собираются в массив JSON. Один дочерний элемент с заданным именем отображается как значение объекта; несколько дочерних элементов отображаются как массив объектов. Это соглашение хорошо работает на практике, но означает, что форма JSON зависит от того, появляются ли элементы один или несколько раз — известный недостаток преобразования XML в JSON.
Пространства имен сохраняются как часть имен элементов (префикс:localName). Инструкции по обработке и разделы CDATA преобразуются в текстовый контент. Объявления XML и DOCTYPE удаляются из вывода JSON, но не влияют на данные.