Конвертер JSON в XML Online
Конвертируйте JSON в валидный XML прямо в браузере. Идеально для интеграции REST API с SOAP-сервисами, ресурсами Android и XML-конфигурациями.
<?xml version="1.0" encoding="UTF-8"?>
<root>
<users>
<user id="1">
<name>John</name>
<age>30</age>
</user>
<user id="2">
<name>Maria</name>
<age>25</age>
</user>
</users>
</root>Основные сценарии использования
JSON в XML: интегрируйте современные API с устаревшими системами
REST в SOAP
Интегрируйте ответы современных REST API с корпоративными SOAP-веб-сервисами, требующими XML.
Ресурсы Android
Генерируйте strings.xml, arrays.xml и XML layout-конфигурации из JSON-данных вашего API.
100% конфиденциально
Ваш JSON конвертируется в браузере. Данные вашего API никогда не покидают ваше устройство.
Корректный XML
Генерируйте валидный XML по стандарту W3C XML 1.0 с объявлением кодировки, корректным экранированием и вложенной структурой.
Как это работает
Три шага — никаких сложностей
Вставьте ваш JSON
Вставьте JSON из вашего REST API, ответа веб-сервиса или любого JSON-объекта, который нужно представить в XML.
Мгновенная конвертация
Конвертер генерирует корректный XML согласно стандарту W3C XML 1.0 с читаемыми отступами.
Скопируйте получившийся XML
Скопируйте XML для использования в вашей SOAP-интеграции, файле ресурсов Android, файле конфигурации или любой системе на основе XML.
FAQ
Остались вопросы?
Массивы JSON не имеют прямого эквивалента в XML, поскольку XML не имеет концепции массива как нативного типа — только элементы и атрибуты. Наиболее широко используемое соглашение — повторять элемент-обёртку для каждого элемента массива. Например, ["a", "b", "c"] под ключом "item" генерирует три элемента <item>a</item><item>b</item><item>c</item>. Для массивов объектов каждый объект становится дочерним элементом с его свойствами в виде вложенных элементов или атрибутов. Это соглашение принято в xml2js (Node.js), JAXB (Java) и большинстве фреймворков XML-сериализации.
Да, с использованием соглашения о префиксе @. В соглашении BadgerFish (задокументировано на badgerfish.de и широко принято) ключи JSON, начинающиеся с @, становятся атрибутами XML родительского элемента. Например, {"element": {"@id": "123", "#text": "содержимое"}} генерирует <element id="123">содержимое</element>. Это соглашение используется в xml2js с опцией mergeAttrs, в Jackson XML (Java) с @JacksonXmlProperty и в System.Xml.Serialization в .NET с [XmlAttribute].
Пространства имён XML (определены в спецификации W3C XML Namespaces, январь 1999 года) позволяют смешивать XML-словари без конфликтов имён. При конвертации JSON в XML пространства имён можно представить как атрибуты xmlns корневого элемента или отдельных элементов. Например, для генерации SOAP XML с пространством имён http://schemas.xmlsoap.org/soap/envelope/ добавьте ключ @xmlns:soap в корневой объект. Точная спецификация зависит от целевой системы — SOAP, KML, GPX, RSS 2.0, Atom — и требует адаптации схемы конвертации к соответствующему XML-словарю.
Специальные символы в текстовых значениях JSON автоматически экранируются по правилам XML: < становится <, > становится >, & становится &, " становится ", а ' становится '. Для содержимого с большими блоками текста с несколькими специальными символами (такими как встроенный HTML или SQL-код) более подходящей является секция CDATA: <![CDATA[содержимое с <тегами> и & без экранирования]]>. XML-парсеры обрабатывают содержимое CDATA как буквальный текст без обработки экранированных сущностей.
Сгенерированный XML содержит объявление <?xml version="1.0" encoding="UTF-8"?> в начале. UTF-8 — кодировка, рекомендованная W3C для XML-документов (XML 1.0 пятое издание, раздел 4.3.3). UTF-8 совместима с ASCII для основных символов и может представлять любой символ Unicode, обеспечивая совместимость с текстом на любом языке. SOAP-системы и большинство веб-сервисов по умолчанию ожидают UTF-8.
Да. RSS 2.0 (спецификация Дейва Уинера, 2002) и XML sitemap (протокол Sitemaps, определённый на sitemaps.org и принятый Google в 2005 году) являются XML-словарями с предопределённой структурой. Для генерации RSS из JSON нужно сопоставить структуру JSON с обязательными элементами RSS 2.0: <channel> с <title>, <link>, <description> и элементами <item> с <title>, <link>, <pubDate>, <guid>. Для sitemap схема проще: корневой элемент <urlset> с xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" и элементы <url> с <loc>, <lastmod>, <changefreq>, <priority>. Конвертер генерирует валидный XML; сопоставление полей JSON с XML остаётся ответственностью разработчика.
Конвертировать JSON в XML: интеграция REST-SOAP, ресурсы Android и генерация лент
XML (Extensible Markup Language) был определён W3C в рекомендации XML 1.0 (опубликована 10 февраля 1998 года, в настоящее время действует пятое издание от ноября 2008 года) как метаязык для определения структурированных разметочных словарей. На протяжении 2000-х годов XML был универсальным форматом обмена данными: SOAP (Simple Object Access Protocol, спецификация W3C 2003 года) использовал XML в качестве формата сообщений для корпоративных веб-сервисов; RSS 2.0 (опубликован Дейвом Уинером в 2002 году) и Atom 1.0 (RFC 4287, декабрь 2005 года) распространяли ленты контента в XML; Android (запущен Google в 2008 году) использовал XML для layouts, strings и манифестов приложений; и SVG (Scalable Vector Graphics, W3C 1.1 от 2003 года) является XML. Необходимость конвертации JSON в XML возникает в трёх основных сценариях: интеграция современных REST API с корпоративными SOAP- или EDI-системами (Electronic Data Interchange); генерация XML-ресурсов для Android (strings.xml, arrays.xml, конфигурации предпочтений) из backend JSON-данных; и создание RSS-лент, sitemap или документов KML/GPX из данных, хранящихся в JSON или возвращаемых REST API.
Конвертация JSON в XML требует разрешения фундаментальных различий между двумя моделями данных. JSON — это дерево значений: объекты (пары ключ-значение), массивы, строки, числа, булевы значения и null. XML — это дерево узлов: элементы (которые могут одновременно иметь как атрибуты, так и дочернее/текстовое содержимое), текст, комментарии, инструкции обработки и секции CDATA. Наиболее широко принятые соглашения конвертации: соглашение BadgerFish (задокументировано на badgerfish.de), где ключи с префиксом @ становятся атрибутами XML, а специальный ключ #text становится текстовым содержимым элемента; и соглашение Parker (проще, без атрибутов, все значения как дочерние элементы). Для интеграции SOAP XML должен соответствовать WSDL (Web Services Description Language, W3C 2001) сервиса, что требует явного сопоставления полей JSON с типами, определёнными в XSD-схеме. Для ресурсов Android элементы <string>, <string-array> и <plurals> в strings.xml имеют специфические соглашения, которые необходимо соблюдать для корректной обработки компилятором aapt2.
Для крупномасштабного производственного использования наиболее широко применяемыми инструментами для конвертации JSON в XML являются: в Node.js — xml2js (более 25 миллионов загрузок в месяц на npm) и xmlbuilder2; в Java — Jackson с модулем jackson-dataformat-xml и спецификация JAXB (Jakarta XML Binding, часть Jakarta EE); в Python — библиотека xmltodict в сочетании с xml.etree из стандартной библиотеки; в .NET — System.Xml.Serialization и встроенный конвертер JsonConvert.SerializeXmlNode из Newtonsoft.Json. Для генерации sitemap из JSON-данных спецификация протокола Sitemaps (sitemaps.org, принята Google, Bing и Yahoo в 2006 году) определяет строгую XML-схему: корневой элемент urlset должен включать атрибут xmlns с корректным пространством имён. Валидация сгенерированного XML по XSD-схеме целевой системы — фундаментальный шаг в корпоративных интеграциях; инструменты xmllint (часть libxml2) или онлайн-валидатор W3C позволяют проверить соответствие перед развёртыванием.