JSON to XML

Převod JSON do formátu XML

Zkusit příklad

Vstup JSON

Výstup XML

Běží lokálně · Bezpečné pro vkládání tajných údajů
XML se zobrazí zde…

Co je převod JSON na XML?

JSON (JavaScript Object Notation) a XML (eXtensible Markup Language) jsou dva dominantní formáty pro výměnu dat ve vývoji softwaru. JSON používá páry klíč-hodnota a pole v kompaktní syntaxi, zatímco XML obaluje data do otevíracích a zavíracích tagů s volitelnými atributy. Převod JSON na XML znamená přeložit strukturální prvky JSON — objekty, pole, řetězce, čísla, logické hodnoty a null — do správně formovaného XML dokumentu s odpovídajícím vnořením prvků.

XML zůstává povinným formátem v mnoha podnikových systémech, vládních API, webových službách SOAP a průmyslových standardech jako HL7 (zdravotnictví), FpML (finance) a XBRL (finanční výkaznictví). Pokud vaše aplikace produkuje JSON, ale příjemce na druhém konci očekává XML, konvertor JSON na XML zajistí překlad bez ručního restrukturování. Převod se řídí předvídatelnými pravidly mapování: JSON objekty se stávají XML prvky, položky pole se stávají opakovanými sourozeneckými prvky a primitivní hodnoty se stávají textovými uzly.

Neexistuje žádný RFC ani standard W3C, který by definoval, jak se JSON mapuje na XML. Různé knihovny produkují pro stejný vstup odlišný výstup. Nejběžnější konvence (používaná tímto nástrojem) obalí celý dokument do konfigurovatelného kořenového prvku, každý klíč JSON převede na podřízený XML prvek a položky pole reprezentuje jako opakované prvky se stejným názvem tagu. Tato pravidla mapování jsou důležitá ve chvíli, kdy přijímající systém vynucuje konkrétní XML schéma (XSD).

Proč použít online konvertor JSON na XML?

Ruční psaní XML ze zdroje JSON je zdlouhavé a náchylné k chybám. Neshodující se tagy, chybějící zavírací prvky a nesprávné vnořování produkují dokumenty, které selhávají při ověřování schématem. Konvertor zpracuje strukturální překlad automaticky.

Okamžitý převod v prohlížeči
Vložte JSON a během milisekund získáte správně formovaný XML. Žádný round-trip na server, žádné nastavování CLI, žádná instalace závislostí. Převod probíhá výhradně v JavaScriptu na vašem zařízení.
🔒
Citlivá data zůstávají soukromá
Váš JSON vstup nikdy neopustí záložku prohlížeče. Veškeré parsování a generování XML probíhá na straně klienta, takže je bezpečné převádět data obsahující API klíče, tokeny nebo produkční data.
📋
Bez účtu nebo přihlášení
Otevřete stránku, vložte JSON a zkopírujte XML výstup. Žádné registrační formuláře, ověřování e-mailu ani limity použití nestojí mezi vámi a převedenými daty.
🌳
Automatické zpracování vnořených struktur
Hluboce vnořené objekty, smíšená pole a hodnoty null se převádějí správně. Nástroj zachovává celou hierarchii vašeho JSON vstupu ve výsledném XML stromu.

Případy použití JSON na XML

Integrace SOAP webových služeb
Vaše REST API vrací JSON, ale SOAP endpoint partnera vyžaduje XML těla požadavků. Převeďte JSON payload na XML před jeho zabalením do SOAP obálky.
Podniková výměna dat
Starší ERP a CRM systémy často přijímají pouze XML importy. Převeďte JSON exporty z moderních nástrojů na XML zdroje odpovídající očekávanému schématu.
Konfigurace CI/CD pipeline
Některé buildovací nástroje (Maven, Ant, MSBuild) používají XML konfigurační soubory. Generujte fragmenty XML konfigurace z JSON souborů s parametry během automatizovaných buildů.
Příprava testovacích dat pro QA
Generujte XML testovací přípravky z JSON datových sad. Rychle vytvářejte platné XML dokumenty pro testování XML parserů, XSLT transformací nebo XPath dotazů.
Přemostění formátů v datové pipeline
ETL pipeline, které zpracovávají XML, mohou přijímat data z API produkujících JSON. Převeďte mezilehlé JSON výsledky na XML před načtením do fáze zpracování založené na XML.
Výuka struktury XML
Studenti studující XML mohou vložit známé JSON struktury a vidět ekvivalentní XML reprezentaci. Díky tomu se vnořování tagů, hierarchie prvků a struktura dokumentu stávají konkrétními.

Pravidla mapování JSON na XML

Protože žádný univerzální standard neřídí převod JSON na XML, různé nástroje produkují odlišný výstup. Tabulka níže ukazuje konvence mapování používané tímto konvertorem a většinou populárních knihoven (js2xmlparser, xmlbuilder, fast-xml-parser). Konvence opakovaných sourozenců pro pole se stala dominantní, protože zrcadlí způsob, jakým XML schémata přirozeně modelují kolekce — každá položka je prvkem první třídy spíše než zahaleným podřízeným prvkem — a čistě se integruje s XPath dotazy a XSLT transformacemi.

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)

Příklady kódu

Níže jsou spustitelné ukázky pro převod JSON na XML ve třech prostředích. Každý příklad produkuje správně formovaný XML ze vzorového JSON objektu.

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>
	// →   ...
}

Časté dotazy

Je převod JSON na XML bezztrátový?
Strukturálně ano — každá JSON hodnota se mapuje na XML prvek nebo textový uzel. XML však nativně nerozlišuje mezi čísly, logickými hodnotami a řetězci tak, jak to dělá JSON. Hodnota 42 v JSON se stane textovým obsahem "42" v XML. Pokud se přijímající systém spoléhá na deklarace typů v XML Schema (XSD), může původní typy obnovit při parsování. Bez schématu jsou informace o typech v převedeném dokumentu efektivně ztraceny.
Jak se JSON pole převádějí na XML?
Každá položka pole se stane sourozeneckým XML prvkem se stejným názvem tagu. Například JSON pole "colors": ["red", "blue"] produkuje dva prvky: &lt;colors&gt;red&lt;/colors&gt; a &lt;colors&gt;blue&lt;/colors&gt;. Některé konvertory obalují pole do nadřazeného prvku (např. &lt;colorsList&gt;), ale přístup s opakovanými sourozenci je běžnější a odpovídá konvenci používané JAXB, Jackson a fast-xml-parser.
Co se stane s hodnotami null při převodu?
JSON null se typicky převede na prázdný XML prvek — například "middle_name": null se stane &lt;middle_name/&gt;. Některé knihovny přidávají atribut xsi:nil="true" pro signalizaci explicitní hodnoty null, což je užitečné, když cílový systém ověřuje oproti XSD schématu. Tento konvertor ve výchozím nastavení vypisuje samouzavírající prázdný prvek.
Mohu převést XML zpět na JSON?
Ano, ale zpáteční cesta nemusí být vždy symetrická. XML funkce jako atributy, instrukce zpracování, komentáře, smíšený obsah a jmenné prostory nemají přímý JSON ekvivalent. Převod XML na JSON a zpět na XML může produkovat strukturálně odlišný dokument. Pokud potřebujete převod XML na JSON, použijte dedikovaný konvertor XML na JSON, který zachovává atributy a jmenné prostory.
Jak zpracovat JSON klíče, které nejsou platnými názvy XML prvků?
Názvy XML prvků nemohou začínat číslicí, obsahovat mezery ani zahrnovat většinu speciálních znaků. Pokud váš JSON má klíč jako "2024-data" nebo "first name", konvertor jej musí sanitizovat — typicky přidáním podtržítka jako předpony nebo nahrazením neplatných znaků podtržítky. Zkontrolujte výstup konvertoru a upravte názvy klíčů ve zdrojovém JSON, pokud výsledný XML musí projít XSD ověřováním.
Jaká je maximální velikost JSON, kterou tento nástroj zvládne?
Konvertor běží v JavaScriptovém engine vašeho prohlížeče, takže praktický limit závisí na dostupné paměti. Většina moderních prohlížečů zpracovává JSON dokumenty až do 50–100 MB bez problémů. Pro soubory větší než to použijte streamovací konvertor jako Python xmltodict nebo nástroj příkazové řádky, který zpracovává data postupně namísto jejich celého načtení do paměti.
Je výstupní XML správně formovaný nebo platný?
Výstup je vždy správně formovaný XML — tagy jsou správně vnořené, speciální znaky jsou escapovány a dokument má jeden kořenový prvek. Zda je výstup platný, závisí na cílovém schématu (XSD nebo DTD). Správné formátování je strukturální zárukou; platnost vyžaduje, aby názvy prvků, pořadí vnořování a typy obsahu odpovídaly konkrétní definici schématu.