Конвертер JSON в XML
Превратите данные JSON в корректный XML.
Работает в браузере. То, что вы вводите, никуда не отправляется.
- Свой корневой элемент
- Всегда корректно оформлен
- Ничего не загружается
Как конвертировать JSON в XML
- Вставьте или загрузите свой JSON.
- Введите имя для корневого элемента.
- Скопируйте XML или скачайте его.
Пример: JSON на входе, XML на выходе
| JSON | XML |
|---|---|
| {"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 внутри текста или значения атрибута, экранируется автоматически, поэтому результат всегда разбирается обратно без ошибок.
Можно вложить объект в массив внутри другого объекта?
Да. Конвертируется любая глубина и сочетание объектов и массивов, каждый уровень становится своим набором вложенных элементов.