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-вивід. Без форм реєстрації, підтвердження електронної пошти або обмежень використання між вами та конвертованими даними.
🌳
Автоматична обробка вкладених структур
Глибоко вкладені об'єкти, змішані масиви та значення 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-тестові фікстури з 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-схеми природньо моделюють колекції — кожен елемент є повноцінним елементом, а не вкладеним дочірнім — і добре інтегрується з 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 у JSON, що зберігає атрибути та простори імен.
Як обробляти ключі JSON, що не є валідними іменами XML-елементів?
Імена XML-елементів не можуть починатися з цифри, містити пробіли або більшість спеціальних символів. Якщо ваш JSON має ключ на кшталт "2024-data" або "first name", конвертер має його очистити — зазвичай додаючи підкреслення на початку або замінюючи неприпустимі символи підкресленнями. Перевіряйте вивід конвертера та за потреби коригуйте імена ключів у вихідному JSON, якщо результуючий XML має пройти XSD-валідацію.
Який максимальний розмір JSON може обробити цей інструмент?
Конвертер працює у JavaScript-рушії вашого браузера, тому практичний ліміт залежить від доступної пам'яті. Більшість сучасних браузерів без проблем обробляє JSON-документи до 50–100 МБ. Для файлів більшого розміру використовуйте потоковий конвертер, як-от Python-бібліотеку xmltodict або CLI-інструмент, що обробляє дані поступово, не завантажуючи все в пам'ять.
Чи є вивід XML коректно сформованим або валідним?
Вивід завжди є коректно сформованим XML — теги правильно вкладені, спеціальні символи екрановані, документ має єдиний кореневий елемент. Те, чи є вивід валідним, залежить від цільової схеми (XSD або DTD). Коректна сформованість — структурна гарантія; валідність вимагає, щоб імена елементів, порядок вкладеності та типи вмісту відповідали конкретному визначенню схеми.