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

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

Инструмент выполняет взаимные преобразования между XML и JSON. Логика адаптирована под приоритет обратимого цикла (преобразовать и сразу вернуть назад без изменений).
По умолчанию опция превращать повторяющиеся элементы с одинаковым именем в массив выключена, массив создаётся только при наличии 2 и более элементов.
Если корнем JSON является массив, XML представляется как <root><item>…</item>…</root>, а при конверсии XML→JSON такая структура восстанавливается в массив. Вся обработка выполняется полностью в вашем браузере, данные никуда не отправляются.

Преобразование XML ⇄ JSON

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

  1. Вставьте слева XML или JSON.
  2. Нажмите XML → JSON или JSON → XML.
  3. При необходимости настройте отступы, ключи для атрибутов и текста, сохранение пространств имён и работу с массивами.
  4. Проверьте синтаксис кнопками Validate.

Пример

XML → JSON:

<user id="42">
  <name>Taro</name>
  <role>admin</role>
  <role>editor</role>
</user>
{
  "user": {
    "@id": "42",
    "name": "Taro",
    "role": ["admin", "editor"]
  }
}

Дополнительно

  • Атрибуты записываются как [префикс атрибутов][имя атрибута] (по умолчанию @id и др.).
  • Текст элемента хранится под [ключом текста] (по умолчанию #text).
  • Элементы с одинаковым именем по умолчанию остаются отдельными значениями и только при наличии 2 и более собираются в массив.
  • Если корнем JSON является массив, XML записывается как <root><item>…</item>…</root> (имя элементов можно изменить).
  • Пустые элементы без текста и атрибутов выводятся как пустой объект {}.

Примечания (ограничения эквивалентности)

Мы стремимся к тому, чтобы при цепочке «исходный JSON» → XML → «JSON после возврата» получался тот же файл, но в следующих случаях это невозможно гарантировать.

Исходный JSON:


    "urls": [
             "admin.microsoft.com"
            ],
    "expressRoute": false,
    "id": 160,

JSON после обратного преобразования:


    "urls": "admin.microsoft.com",
    "expressRoute": "false",
    "id": "160",

※Из-за различий в обработке типов в XML и JSON добиться строгой эквивалентности трудно, хотя частично могут помочь типовые аннотации на стороне XML.