Бесплатный конвертер

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

Или

Об этом инструменте

XML и JSON — это форматы обмена данными, но они пришли из разных эпох Интернета. XML, стандартизированный в 1998 году, был разработан как самоописывающийся формат разметки с атрибутами, пространствами имен и проверкой схемы. JSON появился в начале 2000-х годов как более легкий формат, лучше подходящий для среды выполнения JavaScript и современных API. Большинство новых веб-API поддерживают JSON; многие старые системы — службы SOAP, RSS-каналы, файлы конфигурации, корпоративные интеграции — по-прежнему создают XML. Преобразование между ними — одна из наиболее распространенных задач взаимодействия в современной разработке.

Преобразование не происходит полностью без потерь, поскольку эти два формата обладают разной выразительной силой. XML имеет атрибуты (которых изначально нет в JSON), различает текстовое содержимое и имена элементов и поддерживает смешанное содержимое (элементы, содержащие как текстовые, так и дочерние элементы). Простая модель объекта/массива JSON не может напрямую представлять эти функции, поэтому преобразователи применяют соглашения: атрибуты становятся ключами с префиксом @, текстовое содержимое становится ключом #text и т. д.

Этот преобразователь анализирует XML с помощью встроенного в браузер DOMParser и обрабатывает полученное дерево DOM для создания JSON. Элементы с тем же именем тега, что и у родственных элементов, собираются в массивы; атрибуты помещаются в специальные ключи; Пространства имен и инструкции обработки сохраняются, если они присутствуют. В результате получается удобочитаемый JSON, который разумно возвращается к XML.

Зачем конвертировать XML в JSON

Большинству современных кодов приложений удобнее использовать JSON. JavaScript анализирует JSON изначально, модуль Python json находится в стандартной библиотеке, и практически любой другой язык имеет эквивалентную первоклассную поддержку JSON. Обработка XML требует импорта дополнительных библиотек и написания большего количества шаблонов. Преобразование входящего XML в JSON перед обработкой часто является самым быстрым путем от внешнего XML-канала к внутренней структуре данных.

Инструментарий также опирается на JSON. Улучшителей JSON, валидаторов, валидаторов схемы, языков запросов (jq, JSONPath) и средств просмотра имеется в изобилии; XML-эквиваленты меньше и зачастую старше. Работа с JSON открывает более богатую экосистему инструментов.

Как использовать

Вставьте XML, получите JSON.

  1. Вставьте или загрузите свой XML: Вставьте XML-текст в область ввода или перетащите файл. XML должен быть правильно сформирован; неправильно сформированный XML выдает ошибку анализа, а не предположение.
  2. Конвертировать: DOMParser создает DOM, конвертер обрабатывает каждый элемент, а JSON генерируется с использованием ключей атрибутов (@attr) и ключей текстового содержимого (#text), где это необходимо. Однородные элементы с тем же именем становятся массивами.
  3. Просмотрите структуру: Проверьте JSON, чтобы убедиться, что атрибуты, текст и вложение сопоставлены должным образом. Используемые соглашения (например, @ для атрибутов) видны в выходных данных.
  4. Скачать или скопировать: Сохраните как .json или скопируйте в буфер обмена.

Общие случаи использования

Технические детали

DOMParser создает XML DOM, идентичный тому, который браузер использует для страниц XHTML. Конвертер рекурсивно просматривает этот DOM. Для каждого элемента создается объект JSON: атрибуты становятся ключами с префиксом @ (например, @id, @class); дочерние элементы элемента рекурсивно образуют ту же структуру; текстовый контент, если он присутствует рядом с дочерними элементами, находится под ключом #text.

Повторяющиеся дочерние элементы с одинаковым именем тега собираются в массив JSON. Один дочерний элемент с заданным именем отображается как значение объекта; несколько дочерних элементов отображаются как массив объектов. Это соглашение хорошо работает на практике, но означает, что форма JSON зависит от того, появляются ли элементы один или несколько раз — известный недостаток преобразования XML в JSON.

Пространства имен сохраняются как часть имен элементов (префикс:localName). Инструкции по обработке и разделы CDATA преобразуются в текстовый контент. Объявления XML и DOCTYPE удаляются из вывода JSON, но не влияют на данные.

Лучшие практики

Часто задаваемые вопросы

Изменяет ли преобразование XML в JSON содержимое?
Содержимое сохраняется максимально точно. Однако некоторые функции, специфичные для формата, могут не иметь прямых эквивалентов, поэтому могут возникнуть незначительные различия в форматировании.
Зачем конвертировать данные в формат JSON?
JSON — это стандартный формат данных для веб-API и приложений JavaScript. Он удобен для чтения человеком, широко поддерживается языками программирования и имеет более простой синтаксис, чем XML.
Обрабатывает ли конвертер вложенные или сложные структуры XML?
Да. Инструмент правильно анализирует вложенные объекты, массивы и все стандартные типы данных XML, сохраняя полную структуру данных в выходных данных JSON.
Является ли это преобразование безопасным и конфиденциальным?
Да. Вся обработка происходит локально в вашем браузере. Ваши данные никогда не покидают ваше устройство — ни загрузка на сервер, ни обработка в облаке, ни сбор данных.
Обрабатываются ли разделы CDATA?
Да. Содержимое CDATA преобразуется в обычный текст при выводе JSON. Сама упаковка CDATA не сохраняется, но содержимое сохраняется.
Загружены ли мои данные на сервер?
Нет. DOMParser запускается в вашем браузере; преобразование происходит полностью на вашем устройстве.
Вернется ли JSON обратно в XML?
Да, если вы используете обратное соглашение (инструмент JSON to XML следует тем же правилам @attr и #text). Обратный путь сохраняет структуру типичного XML; некоторые крайние случаи (порядок смешанного содержимого, инструкции по обработке) могут не выжить полностью.
Каков максимальный размер ввода?
До 50 МБ. DOMParser ограничен памятью вашего браузера; очень большие XML-файлы могут замедляться или не анализироваться.