Руководство

Как преобразовать JSON в XML с именем корневого элемента

Вставьте корректный JSON, задайте подходящее имя корневого элемента и включите нужный режим форматирования. Затем проверьте структуру объектов, массивов и имена XML-элементов в полученном результате.

Инструмент Конвертер JSON в XML

Обзор

Преобразователь JSON в XML подходит, когда структурированные данные нужно представить в XML-формате для дальнейшей передачи или чтения. Вставьте текст JSON, задайте имя корневого элемента и при необходимости оставьте включённым красивое форматирование. По умолчанию корневой элемент называется root, а форматирование включено. Результат зависит не только от значения, но и от формы исходного JSON: свойства объекта становятся вложенными XML-элементами, а массивы получают специальную структуру.

Перед преобразованием проверьте, что вход действительно содержит JSON, а не фрагмент JavaScript или текст с пропущенной запятой. Это особенно важно при ручной подготовке данных. Преобразователь не исправляет синтаксические ошибки: некорректный JSON приводит к неуспешному результату, а не к готовому XML-документу. Если данные ещё не подготовлены, сначала решите, какой объект должен быть корнем и какие имена будут удобны в XML.

Пошаговое преобразование

  1. Подготовьте исходный текст. Например, для записи пользователя можно взять {"user":{"name":"Анна"},"tags":["dev","xml"]}. Проверьте кавычки, двоеточия, запятые и скобки. Строковые значения должны быть заключены в двойные кавычки, а комментарии в JSON не используются.

  2. Вставьте JSON в поле для входного текста. Если поле оставить пустым или ввести только пробелы, преобразование не создаст XML-содержимое и вернёт пустую XML-строку. Поэтому пустое поле не заменяет объект с пустыми свойствами.

  3. Укажите имя корневого элемента в соответствующем поле, если вместо стандартного root требуется другое название, например client. Имя должно подходить для XML. Недопустимые символы в имени корня и в ключах JSON заменяются символами подчёркивания, а имя, начинающееся с цифры, получает подчёркивание в начале. Поэтому исходное написание ключа может измениться.

  4. Оставьте красивое форматирование включённым, если XML предстоит проверять глазами или помещать в документацию. Для непустого JSON, который не равен null, такой режим добавляет XML-декларацию и пытается расставить отступы. Если компактная запись удобнее для дальнейшей обработки, отключите этот режим.

  5. Запустите преобразование и изучите результат. Объект user станет элементом, внутри которого появится name. Массив верхнего уровня и объекты внутри массивов используют элементы item. Для простого массива внутри объекта повторяющиеся элементы получают имя свойства, например tags. Специальные символы в текстовых значениях экранируются при сериализации, поэтому символы вроде & не должны оставаться в XML-тексте без экранирования.

  6. Если результат отмечен как неуспешный, вернитесь к исходной строке и проверьте синтаксис JSON. Если входом было значение null, это допустимый случай: при корне client результатом будет самозакрывающийся элемент <client/> без XML-декларации. Для пустого или состоящего из пробелов ввода действует другое правило: возвращается пустая XML-строка.

Как читать результат и учитывать границы

Сначала определите, какой тип результата получен. Непустой объект обычно превращается в XML-дерево: каждое свойство становится дочерним элементом, а вложенный объект сохраняет вложенность под именем своего свойства. У массива важна позиция. Массив верхнего уровня использует элементы item, тогда как простой массив внутри объекта повторяет имя содержащего свойства. Вложенные списки продолжают использовать родительское имя тега. Из-за этого форма XML может отличаться от ожидания, если сравнивать её только со списком ключей JSON.

Отдельно учитывайте три особых состояния входа. Некорректный JSON не превращается в частичный документ. Пустая строка или строка из пробелов даёт пустую XML-строку. Значение null принимается и создаёт самозакрывающийся корневой элемент. При включённом красивом формате XML-декларация относится к непустому JSON, не равному null; для null она не добавляется.

Проверьте имена элементов перед передачей результата дальше. Ключи JSON и выбранное имя корня проходят санитарную обработку: неподдерживаемые символы заменяются на подчёркивания, а начальная цифра получает подчёркивание. Следовательно, для схемы обмена, где важны конкретные XML-имена, заранее выбирайте совместимые ключи и отдельно сверяйте итоговую структуру. Экранирование специальных символов в текстовом содержимом защищает синтаксическую форму сериализованного XML, но не меняет смысл исходных данных и не исправляет ошибки в самом JSON.

Если результат не соответствует задаче, сравните его с исходной формой данных, выбранным корнем и настройкой форматирования. Красивые отступы меняют представление документа, но не его логическую структуру. Успешное преобразование также не означает, что полученная схема совпадёт с требованиями конкретного XML-приёмника: имена, повторяемость элементов и корневой уровень нужно проверять по его правилам.

Практический пример

Разработчик переносит небольшую запись пользователя из JSON-представления в XML и хочет сохранить вложенный объект и список меток.

Вставьте JSON {"user":{"name":"Анна"},"tags":["dev","xml"]}, укажите имя корня client, оставьте красивое форматирование включённым и запустите преобразование.

При корне client объект user становится вложенным элементом с name, а значения массива tags повторяются внутри элементов tags; при включённом форматировании непустой JSON получает XML-декларацию и отступы.

Ограничения

  • Результат не сохраняет каждое имя ключа буквально и не исправляет синтаксические ошибки; структуру массивов и совместимость имён с требованиями XML нужно проверять отдельно.

Частые ошибки

  • Ошибка: ожидать XML после JSON с пропущенной запятой или незакрытой скобкой. Исправьте синтаксис исходного текста и запустите преобразование повторно, потому что некорректный JSON даёт неуспешный результат.

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

Можно ли преобразовать пустой JSON-ввод?

Да, если ввести значение null: будет создан самозакрывающийся корневой элемент без XML-декларации. Пустой или состоящий из пробелов ввод обрабатывается иначе и возвращает пустую XML-строку.

Сохраняются ли имена ключей JSON без изменений?

Не в исходном виде во всех случаях. Недопустимые символы заменяются подчёркиваниями, а начальная цифра получает подчёркивание, поэтому итоговое имя нужно проверить.

Когда в результате появляется XML-декларация?

Да, для непустого JSON, который не равен null, при включённом красивом формате добавляются XML-декларация и отступы. Для null декларация не добавляется.

Инструмент

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