инструмент для разработчиков / 01

Конвертер XML в JSON

Преобразуйте XML-документ в читаемый JSON с корректной обработкой атрибутов и повторяющихся элементов.

Конвертер XML в JSON: TOEA считывает элементы, атрибуты, текст и CDATA документа, а затем преобразует их в JSON: перед атрибутами добавляется @, отдельный текст помещается в #text, а повторяющиеся соседние элементы с одинаковыми именами объединяются в массив. Работает на 100% локально в вашем браузере, файлы на сервер не загружаются.

Запуски
В вашем браузере
Стоимость
Бесплатно · без регистрации
Доступность
Готово к использованию
Панель XML → JSONЛокальная обработка

Полностью работает в браузере

↥
Вставьте XML ниже или выберите файл

До 5 MB · ничего не загружается

Всё преобразуется в текст

В XML нет типов данных, поэтому <count>42</count> становится "42", а <active>true</active> — "true". Преобразуйте числа и логические значения в коде, который читает JSON, поскольку там вы знаете назначение каждого поля. То же относится к атрибутам: @id содержит строку, даже если выглядит как число.

Код, читающий результат, также должен учитывать элементы, которые повторяются не всегда. Если <item> встречается один раз, это объект, а если два — массив, поэтому перед перебором нормализуйте значение с помощью Array.isArray(x) ? x : [x].

Документы, которые плохо конвертируются

Конвертация подходит для данных: конфигураций, ответов API, лент и экспортов. Для связного текста она подходит плохо. В <p>Read <b>this</b> first</p> обычный текст объединяется в одно значение #text, а выделенное слово становится отдельным ключом, поэтому порядок чтения теряется. XHTML, DocBook и подобные форматы документов лучше обрабатывать с помощью XML-библиотеки. Чтобы изучить структуру документа перед конвертацией, отформатируйте его с помощью форматтера XML.

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

  1. Вставьте XML или выберите файл.
  2. Выберите размер отступа.
  3. Скопируйте или скачайте JSON.

Конфиденциальность и ограничения

Текст преобразуется в браузере и никогда не загружается на сервер. Это особенно важно, если файл содержит конфигурацию или экспорт, которым вы не хотели бы делиться с посторонними. Пространства имён сохраняются в именах элементов без изменений, а не разрешаются.

Похожие инструменты

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

Почему перед атрибутами добавляется @?

XML отделяет атрибуты от дочерних элементов, а в JSON такого различия нет. Префикс @ сохраняет это разделение, поэтому преобразование можно выполнить в обратную сторону без догадок.

Почему один элемент превратился в массив?

Повторяющиеся соседние элементы с одинаковыми именами всегда преобразуются в массив, поскольку именно это отражает их структуру. Имя, которое встречается один раз, остаётся обычным значением.

Для чего нужен #text?

Если элемент содержит одновременно текст и дочерние элементы, отдельному тексту нужно место в структуре. Для этого используется #text.

Что не поддерживается?

Не поддерживаются определения сущностей DTD, разрешение пространств имён и инструкции обработки, кроме декларации. В конфигурационных файлах и данных API они не используются.

Бесплатный инструмент · запусков: в вашем браузере · аккаунт не нужен