JSON в XML
Конвертируйте JSON в эквивалентный XML с разумной обработкой атрибутов и массивов.
- Работает в браузере — введённое вами никуда не загружается
- Без регистрации и квот, пользуйтесь бесплатно сколько угодно
Как это работает
JSON и XML могут выразить почти одно и то же, но по-разному, поэтому любая конвертация требует нескольких решений. Здесь принимаются обычные из них, и вам сообщается, какие именно.
Массивы становятся повторяющимися элементами
В XML нет типа «список». Стандартное соглашение — повторять элемент по одному разу на каждый пункт, поэтому массив из трёх книг превращается в три элемента <book> подряд. Именно этого ожидает почти любой потребитель XML, и именно это здесь получается.
Атрибуты
XML различает атрибуты и дочерние элементы; в JSON такого различия нет. Широко распространённое соглашение — добавлять к ключу префикс @, чтобы он стал атрибутом, и здесь оно соблюдается; его можно отключить, если ваши ключи действительно начинаются с @.
Имена приводятся в допустимый вид
Имена элементов XML не могут содержать пробелы и большинство знаков препинания и не могут начинаться с цифры. В ключах, нарушающих эти правила, недопустимые символы заменяются подчёркиваниями, а при необходимости в начало добавляется подчёркивание. Без этого результат не удалось бы разобрать.
Значения null
Значение null становится пустым элементом с пометкой xsi:nil — это принятый способ сказать «намеренно пусто», а не «отсутствует». Если ваш потребитель не понимает xsi:nil, пустой элемент обычно читается так же.
Обратный путь не точен
JSON отличает число 42 от строки "42", а XML — нет: в XML всё является текстом, если схема не говорит иного. Обратная конвертация не гарантирует восстановления исходных типов.
JSON в XML: вопросы
Как обрабатываются массивы?
Как повторяющиеся элементы — это стандартное соглашение XML, поскольку в XML нет типа «список».
Можно ли получить атрибуты?
Да. Добавьте к ключу префикс @, и он станет атрибутом; это можно отключить.
Что происходит с ключами, содержащими пробелы?
Недопустимые символы заменяются подчёркиваниями, потому что в именах XML их быть не может. Без этого результат не удалось бы разобрать.
Можно ли конвертировать обратно в JSON?
Да, с помощью инструмента «XML в JSON», но типы не сохраняются — в XML нет понятия числа в отличие от строки.
Загружаются ли мои данные?
Нет. Конвертация выполняется в вашем браузере.