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

Превратите данные JSON в корректный XML.

Работает в браузере. То, что вы вводите, никуда не отправляется.

Как конвертировать JSON в XML

  1. Вставьте или загрузите свой JSON.
  2. Введите имя для корневого элемента.
  3. Скопируйте XML или скачайте его.

Пример: JSON на входе, XML на выходе

JSONXML
{"name":"Sam"}<root><name>Sam</name></root>
{"@_id":"5","#text":"Widget"}<root id="5">Widget</root>
{"tag":["a","b"]}<root><tag>a</tag><tag>b</tag></root>

Как ключи JSON становятся именами тегов

  • Символ, который XML не допускает в имени, например пробел, заменяется на _, поэтому "first name" становится first_name.
  • Ключ, начинающийся с цифры, получает ведущий _, ведь имена XML не могут начинаться с числа.
  • Ключ, совпадающий с уже переименованным, получает добавленный номер, поэтому второй first_name становится first_name_2.

Где полезен JSON в XML

  • Передача данных в старую систему или API, которые принимают только XML.
  • Создание небольшой ленты, например в стиле RSS, из источника данных JSON.
  • Проверка того, как payload JSON выглядел бы в виде SOAP-запроса или устаревшего XML-запроса.

Ограничения, о которых стоит знать

  • JSON null становится пустым элементом, ведь в XML нет ничего, что означало бы именно null.
  • Ключи, различающиеся только регистром, вроде Name и name, становятся двумя разными тегами, ведь имена тегов XML чувствительны к регистру.
  • Числа и логические значения записываются в XML как обычный текст. Тому, кто читает файл, нужно знать, как разобрать их обратно в исходный тип.

Частые вопросы о JSON в XML

Как массивы записываются в XML?

Каждый элемент массива становится повторяющимся элементом, названным по своему ключу. Массив на верхнем уровне оборачивается в элементы item под корнем.

Как создать атрибуты?

Начните ключ с @_, например "@_id": 5, и он станет атрибутом своего родительского элемента. Это соответствует выводу конвертера XML в JSON.

Что если ключ не является допустимым именем тега XML?

Символы, которые XML не допускает в именах, например пробелы, заменяются на _, а имя, начинающееся с цифры, получает _ в начале. Так "first name" становится first_name.

Можно провести данные через XML в JSON и обратно?

Да. JSON, созданный конвертером XML в JSON с включёнными атрибутами, включая его ключи @_ и значения #text, конвертируется здесь обратно в тот же XML.

Что происходит с JSON-массивом простых значений, например списком тегов?

Каждое значение становится своим повторяющимся элементом, названным по ключу массива, например массив tags из ["a","b"] под ключом tag становится <tag>a</tag><tag>b</tag>.

Вывод включает объявление XML?

Да. Каждый результат начинается со строки <?xml version="1.0" encoding="UTF-8"?> на отдельной строке.

Экранирует ли это специальные символы вроде < или & внутри текста?

Да. Любой символ, который иначе сломал бы синтаксис XML внутри текста или значения атрибута, экранируется автоматически, поэтому результат всегда разбирается обратно без ошибок.

Можно вложить объект в массив внутри другого объекта?

Да. Конвертируется любая глубина и сочетание объектов и массивов, каждый уровень становится своим набором вложенных элементов.

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