← Все гайды

Конвертер JSON в XML онлайн

· 2 мин чтения

JSONXML

Как получить XML из JSON: корневой элемент, атрибуты через «@», массивы как повторяющиеся элементы и проверка допустимости имён.

Обратная задача тоже частая: данные из REST API нужно отправить в систему, которая принимает только XML, или подготовить пример для SOAP-сервиса.

Как преобразовать

  1. Откройте документ в редакторе JSON.
  2. Выберите Файл → Преобразовать в → XML.
  3. Откройте результат в песочнице XML, скачайте его или сохраните в проект.
XML, полученный из JSON
Предпросмотр XML с атрибутами и повторяющимися элементами

Как задать нужную форму XML

  • Корневой элемент: если в JSON у объекта верхнего уровня одно свойство, оно и станет корнем: {"order": {…}} → <order>…</order>. Иначе корнем будет <root>.
  • Атрибуты: свойства с префиксом @ — "@id": 42 → id="42".
  • Текст элемента с атрибутами: свойство #text.
  • Массивы: "item": ["a", "b"] → два элемента <item>.
  • null → пустой элемент <note/>.

Имена, недопустимые в XML

Ключ JSON может быть любым, а имя элемента XML — нет: оно не может начинаться с цифры и содержать пробелы. Такие ключи заменяются на item, а окно перечисляет их в замечаниях. Переименуйте ключи в исходном JSON, если нужна точная форма.

Дальше

Если получатель проверяет XML по схеме, проверьте результат — «Проверка XML по XSD». Если схемы нет, её можно вывести из получившегося XML — «Генератор XSD из XML».

Пример

{"order": {"@id": 42, "item": ["a", "b"], "total": {"@currency": "RUB", "#text": 10.5}, "note": null}}

превращается в

<?xml version="1.0" encoding="UTF-8"?>
<order id="42">
  <item>a</item>
  <item>b</item>
  <total currency="RUB">10.5</total>
  <note/>
</order>

Вопросы и ответы

Как добавить пространство имён? Задайте его атрибутом: "@xmlns": "urn:example:orders" у корневого объекта — он станет атрибутом корневого элемента.

Массив на верхнем уровне — что будет? Корнем станет <root>, а элементы массива — элементами <item> внутри него.

Порядок элементов важен для схемы — сохранится ли он? Да, элементы идут в порядке ключей JSON. Если схема требует другой порядок, переставьте ключи в исходном документе.