JSON to XML

Преобразует JSON в формат XML

Попробовать пример

Входные данные JSON

Выходные данные XML

Работает локально · Безопасно вставлять секреты
XML появится здесь…

Что такое конвертация JSON в XML?

JSON (JavaScript Object Notation) и XML (eXtensible Markup Language) — два доминирующих формата обмена данными в разработке программного обеспечения. JSON использует пары ключ-значение и массивы с компактным синтаксисом, тогда как XML оборачивает данные в открывающие и закрывающие теги с необязательными атрибутами. Конвертация JSON в XML означает перевод структурных примитивов JSON — объектов, массивов, строк, чисел, булевых значений и null — в правильно оформленный XML-документ с соответствующей вложенностью элементов.

XML по-прежнему является обязательным форматом во многих корпоративных системах, государственных API, SOAP-веб-сервисах и отраслевых стандартах, таких как HL7 (здравоохранение), FpML (финансы) и XBRL (финансовая отчётность). Когда ваше приложение выдаёт JSON, а принимающая система ожидает XML, конвертер JSON в XML выполняет преобразование без ручной реструктуризации. Конвертация следует предсказуемым правилам сопоставления: объекты JSON становятся элементами XML, элементы массивов становятся повторяющимися дочерними элементами, а примитивные значения превращаются в текстовые узлы.

Не существует единого RFC или стандарта W3C, определяющего, как JSON отображается в XML. Разные библиотеки дают разный результат для одних и тех же входных данных. Наиболее распространённое соглашение (используемое этим инструментом) оборачивает весь документ в настраиваемый корневой элемент, преобразует каждый ключ JSON в дочерний XML-элемент, а элементы массивов представляет как повторяющиеся элементы с одним именем тега. Понимание этих правил сопоставления важно, когда принимающая система требует соответствия конкретной XML-схеме (XSD).

Зачем использовать онлайн-конвертер JSON в XML?

Писать XML вручную из источника JSON — утомительно и ненадёжно. Непарные теги, забытые закрывающие элементы и неверная вложенность порождают документы, которые не проходят проверку по схеме. Конвертер выполняет структурное преобразование автоматически.

Мгновенная конвертация в браузере
Вставьте JSON и получите правильно оформленный XML за миллисекунды. Никаких обращений к серверу, настройки CLI и установки зависимостей. Конвертация полностью выполняется в JavaScript на вашем устройстве.
🔒
Конфиденциальность данных
Входные данные JSON никогда не покидают вкладку браузера. Разбор и генерация XML происходят на стороне клиента, поэтому конвертировать данные, содержащие ключи API, токены или производственные данные, безопасно.
📋
Без регистрации и авторизации
Откройте страницу, вставьте JSON и скопируйте XML. Никаких форм регистрации, подтверждения email или ограничений на использование между вами и преобразованными данными.
🌳
Автоматическая обработка вложенных структур
Глубоко вложенные объекты, смешанные массивы и значения null конвертируются корректно. Инструмент сохраняет полную иерархию входного JSON в результирующем XML-дереве.

Сценарии использования JSON to XML

Интеграция с SOAP-веб-сервисами
Ваш REST API возвращает JSON, но партнёрский SOAP-эндпоинт требует XML в теле запроса. Конвертируйте JSON-данные в XML перед их оборачиванием в SOAP-конверт.
Корпоративный обмен данными
Устаревшие ERP- и CRM-системы нередко принимают только XML-импорт. Конвертируйте JSON-экспорты из современных инструментов в XML-потоки, соответствующие ожидаемой схеме.
Конфигурация CI/CD-пайплайна
Некоторые инструменты сборки (Maven, Ant, MSBuild) используют XML-конфигурационные файлы. Генерируйте фрагменты XML-конфигурации из JSON-файлов параметров в ходе автоматизированных сборок.
Подготовка тестовых данных для QA
Генерируйте XML-тестовые fixture из JSON-наборов данных. Быстро создавайте валидные XML-документы для тестирования XML-парсеров, XSLT-преобразований или XPath-запросов.
Мосты между форматами в пайплайнах обработки данных
ETL-пайплайны, принимающие XML, могут получать данные от API, которые выдают JSON. Конвертируйте промежуточные JSON-результаты в XML перед загрузкой в XML-этап обработки.
Изучение структуры XML
Студенты, изучающие XML, могут вставить знакомые JSON-структуры и увидеть эквивалентное XML-представление. Это делает вложенность тегов, иерархию элементов и структуру документа наглядными.

Правила сопоставления JSON и XML

Поскольку универсального стандарта конвертации JSON в XML не существует, разные инструменты дают разный результат. В таблице ниже приведены соглашения о сопоставлении, используемые этим конвертером и большинством популярных библиотек (js2xmlparser, xmlbuilder, fast-xml-parser). Соглашение о повторяющихся дочерних элементах для массивов стало доминирующим, потому что оно отражает то, как XML-схемы естественным образом моделируют коллекции: каждый элемент является полноценным XML-элементом, а не вложенным дочерним — и это удобно для XPath-запросов и XSLT-преобразований.

JSON TypeJSON ExampleXML Output
Object{"name": "Alice"}<name>Alice</name>
Nested object{"user": {"age": 30}}<user><age>30</age></user>
Array{"colors": ["red", "blue"]}<colors>red</colors><colors>blue</colors>
String"hello"<root>hello</root>
Number42<root>42</root>
Booleantrue<root>true</root>
Nullnull<root/>
Empty object{}<root/>
Empty array[](no child elements)

Примеры кода

Ниже приведены готовые фрагменты кода для конвертации JSON в XML в трёх средах. Каждый пример создаёт правильно оформленный XML из образца JSON-объекта.

JavaScript (Node.js)
import { create } from 'xmlbuilder2';

const json = {
  order: {
    id: 1024,
    items: [
      { sku: "A1", qty: 2 },
      { sku: "B3", qty: 1 }
    ],
    shipped: false
  }
};

const xml = create({ version: '1.0' })
  .ele(json)
  .end({ prettyPrint: true });

console.log(xml);
// → <?xml version="1.0"?>
// → <order>
// →   <id>1024</id>
// →   <items>
// →     <sku>A1</sku>
// →     <qty>2</qty>
// →   </items>
// →   <items>
// →     <sku>B3</sku>
// →     <qty>1</qty>
// →   </items>
// →   <shipped>false</shipped>
// → </order>
Python
import json
import xmltodict

data = {
    "order": {
        "id": 1024,
        "items": [
            {"sku": "A1", "qty": 2},
            {"sku": "B3", "qty": 1}
        ],
        "shipped": False
    }
}

# xmltodict.unparse expects a single root key
xml = xmltodict.unparse(data, pretty=True)
print(xml)
# → <?xml version="1.0" encoding="utf-8"?>
# → <order>
# →   <id>1024</id>
# →   <items>
# →     <sku>A1</sku>
# →     <qty>2</qty>
# →   </items>
# →   <items>
# →     <sku>B3</sku>
# →     <qty>1</qty>
# →   </items>
# →   <shipped>false</shipped>
# → </order>
Go
package main

import (
	"encoding/json"
	"encoding/xml"
	"fmt"
)

type Item struct {
	SKU string `json:"sku" xml:"sku"`
	Qty int    `json:"qty" xml:"qty"`
}

type Order struct {
	XMLName xml.Name `xml:"order"`
	ID      int      `json:"id" xml:"id"`
	Items   []Item   `json:"items" xml:"items"`
	Shipped bool     `json:"shipped" xml:"shipped"`
}

func main() {
	raw := `{"id":1024,"items":[{"sku":"A1","qty":2},{"sku":"B3","qty":1}],"shipped":false}`

	var order Order
	json.Unmarshal([]byte(raw), &order)

	out, _ := xml.MarshalIndent(order, "", "  ")
	fmt.Println(xml.Header + string(out))
	// → <?xml version="1.0" encoding="UTF-8"?>
	// → <order>
	// →   <id>1024</id>
	// →   <items>
	// →     <sku>A1</sku>
	// →     <qty>2</qty>
	// →   </items>
	// →   ...
}

Часто задаваемые вопросы

Является ли конвертация JSON в XML обратимой (без потерь)?
Структурно — да: каждое значение JSON отображается в XML-элемент или текстовый узел. Однако XML не различает числа, булевы значения и строки так, как это делает JSON. Значение 42 в JSON становится текстовым содержимым «42» в XML. Если принимающая система использует объявления типов XML Schema (XSD), она может восстановить исходные типы при разборе. Без схемы информация о типах в конвертированном документе фактически теряется.
Как JSON-массивы конвертируются в XML?
Каждый элемент массива становится дочерним XML-элементом с одинаковым именем тега. Например, JSON-массив "colors": ["red", "blue"] создаёт два элемента: &lt;colors&gt;red&lt;/colors&gt; и &lt;colors&gt;blue&lt;/colors&gt;. Некоторые конвертеры оборачивают массивы в родительский элемент (например, &lt;colorsList&gt;), но подход с повторяющимися элементами более распространён и соответствует соглашению, используемому в JAXB, Jackson и fast-xml-parser.
Что происходит со значениями null при конвертации?
JSON null обычно конвертируется в пустой XML-элемент — например, "middle_name": null превращается в &lt;middle_name/&gt;. Некоторые библиотеки добавляют атрибут xsi:nil="true" для явного обозначения null, что полезно, когда целевая система проверяет документ по XSD-схеме. Этот конвертер по умолчанию выводит самозакрывающийся пустой элемент.
Можно ли конвертировать XML обратно в JSON?
Да, но обратное преобразование не всегда симметрично. Возможности XML — атрибуты, инструкции обработки, комментарии, смешанное содержимое и пространства имён — не имеют прямых эквивалентов в JSON. Конвертация XML в JSON и обратно в XML может дать структурно иной документ. Если нужна конвертация XML в JSON, воспользуйтесь специализированным конвертером XML to JSON, который сохраняет атрибуты и пространства имён.
Как обрабатывать ключи JSON, недопустимые в качестве имён XML-элементов?
Имена XML-элементов не могут начинаться с цифры, содержать пробелы или большинство специальных символов. Если в вашем JSON есть ключ вроде «2024-data» или «first name», конвертер должен его нормализовать — как правило, добавляя подчёркивание в начало или заменяя недопустимые символы подчёркиваниями. Проверьте вывод конвертера и при необходимости скорректируйте имена ключей в исходном JSON, если результирующий XML должен пройти XSD-валидацию.
Каков максимальный размер JSON, с которым справляется этот инструмент?
Конвертер работает в JavaScript-движке браузера, поэтому практический предел определяется доступной памятью. Большинство современных браузеров без проблем обрабатывают JSON-документы размером до 50–100 МБ. Для файлов большего размера используйте потоковый конвертер — например, xmltodict в Python или CLI-инструмент, который обрабатывает данные постепенно, не загружая всё в память сразу.
Является ли выходной XML правильно оформленным или валидным?
Выходной XML всегда является правильно оформленным: теги корректно вложены, специальные символы экранированы, документ имеет единственный корневой элемент. Является ли вывод валидным — зависит от целевой схемы (XSD или DTD). Правильная оформленность — это структурная гарантия; валидность требует, чтобы имена элементов, порядок вложенности и типы содержимого соответствовали конкретному определению схемы.