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