JSON (JavaScript Object Notation) i XML (eXtensible Markup Language) to dwa dominujące formaty wymiany danych w tworzeniu oprogramowania. JSON używa par klucz-wartość i tablic w zwartej składni, natomiast XML opakowuje dane w tagi otwierające i zamykające z opcjonalnymi atrybutami. Konwersja JSON na XML polega na przetłumaczeniu prymitywów strukturalnych JSON — obiektów, tablic, ciągów znaków, liczb, wartości logicznych i null — na poprawnie sformułowany dokument XML z odpowiednim zagnieżdżeniem elementów.
XML pozostaje wymaganym formatem w wielu systemach korporacyjnych, rządowych interfejsach API, serwisach SOAP oraz standardach branżowych takich jak HL7 (ochrona zdrowia), FpML (finanse) i XBRL (sprawozdawczość finansowa). Gdy aplikacja generuje JSON, a odbiorca danych oczekuje XML, konwerter JSON na XML obsługuje tę translację bez ręcznej restrukturyzacji. Konwersja opiera się na przewidywalnych regułach odwzorowania: obiekty JSON stają się elementami XML, elementy tablicy stają się powtarzającymi się elementami sibling, a wartości prymitywne stają się węzłami tekstowymi.
Nie istnieje jeden RFC ani standard W3C definiujący sposób odwzorowania JSON na XML. Różne biblioteki produkują różne wyjście dla tych samych danych wejściowych. Najczęstsza konwencja (stosowana przez to narzędzie) opakowuje cały dokument w konfigurowalny element główny, przekształca każdy klucz JSON w element potomny XML i reprezentuje elementy tablicy jako powtarzające się elementy z tą samą nazwą tagu. Zrozumienie tych reguł odwzorowania ma znaczenie, gdy system odbiorczy wymusza konkretny schemat XML (XSD).
Dlaczego warto używać internetowego konwertera JSON na XML?
Ręczne pisanie XML na podstawie źródła JSON jest żmudne i podatne na błędy. Niezgodne tagi, brakujące elementy zamykające i nieprawidłowe zagnieżdżenie powodują, że dokumenty nie przechodzą walidacji schematu. Konwerter automatycznie obsługuje translację struktury.
⚡
Natychmiastowa konwersja w przeglądarce
Wklej JSON i uzyskaj poprawnie sformułowany XML w ciągu milisekund. Bez przesyłania do serwera, bez konfiguracji interfejsu wiersza poleceń, bez instalowania zależności. Konwersja odbywa się całkowicie w JavaScript na Twoim urządzeniu.
🔒
Zachowanie poufności danych
Twoje dane JSON nigdy nie opuszczają karty przeglądarki. Parsowanie i generowanie XML odbywa się po stronie klienta, dzięki czemu bezpieczne jest konwertowanie ładunków zawierających klucze API, tokeny lub dane produkcyjne.
📋
Bez konta i logowania
Otwórz stronę, wklej JSON i skopiuj wyjście XML. Bez formularzy rejestracyjnych, weryfikacji adresu e-mail ani limitów użycia oddzielających Cię od przekonwertowanych danych.
🌳
Automatyczna obsługa zagnieżdżonych struktur
Głęboko zagnieżdżone obiekty, tablice mieszane i wartości null są konwertowane poprawnie. Narzędzie zachowuje pełną hierarchię danych wejściowych JSON w wynikowym drzewie XML.
Zastosowania konwertera JSON na XML
Integracja z serwisami SOAP
Twoje REST API zwraca JSON, ale punkt końcowy SOAP partnera wymaga treści żądań w XML. Przekonwertuj ładunek JSON na XML przed opakowaniem go w kopertę SOAP.
Wymiana danych w systemach korporacyjnych
Starsze systemy ERP i CRM często akceptują wyłącznie importy w XML. Przekonwertuj eksporty JSON z nowoczesnych narzędzi na źródła XML zgodne z oczekiwanym schematem.
Konfiguracja potoków CI/CD
Niektóre narzędzia do budowania (Maven, Ant, MSBuild) używają plików konfiguracyjnych XML. Generuj fragmenty konfiguracji XML z plików parametrów JSON podczas zautomatyzowanych kompilacji.
Przygotowanie danych testowych QA
Generuj testowe pliki XML z zestawów danych JSON. Szybko twórz poprawne dokumenty XML do testowania parserów XML, transformacji XSLT lub zapytań XPath.
Łączenie formatów w potokach danych
Potoki ETL przyjmujące XML mogą odbierać dane z interfejsów API generujących JSON. Przekonwertuj pośrednie wyniki JSON na XML przed załadowaniem do etapu przetwarzania opartego na XML.
Nauka struktury XML
Studenci uczący się XML mogą wklejać znane struktury JSON i zobaczyć równoważną reprezentację XML. Dzięki temu zagnieżdżanie tagów, hierarchia elementów i struktura dokumentu stają się konkretne.
Reguły odwzorowania JSON na XML
Ponieważ nie istnieje powszechny standard regulujący konwersję JSON na XML, różne narzędzia produkują różne wyjście. Poniższa tabela pokazuje konwencje odwzorowania stosowane przez ten konwerter i najpopularniejsze biblioteki (js2xmlparser, xmlbuilder, fast-xml-parser). Konwencja powtarzanych elementów sibling dla tablic stała się dominująca, ponieważ odzwierciedla naturalny sposób modelowania kolekcji w schematach XML — każdy element jest pełnoprawnym elementem, a nie zagnieżdżonym potomkiem — i dobrze integruje się z zapytaniami XPath i transformacjami XSLT.
JSON Type
JSON Example
XML 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>
Number
42
<root>42</root>
Boolean
true
<root>true</root>
Null
null
<root/>
Empty object
{}
<root/>
Empty array
[]
(no child elements)
Przykłady kodu
Poniżej znajdują się działające fragmenty kodu do konwersji JSON na XML w trzech środowiskach. Każdy przykład generuje poprawnie sformułowany XML z przykładowego obiektu JSON.
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>
// → ...
}
Często zadawane pytania
Czy konwersja JSON na XML jest bezstratna?
Strukturalnie — tak. Każda wartość JSON odwzorowuje się na element XML lub węzeł tekstowy. Jednak XML nie rozróżnia natywnie liczb, wartości logicznych i ciągów znaków tak jak JSON. Wartość 42 w JSON staje się treścią tekstową "42" w XML. Jeśli system odbiorczy opiera się na deklaracjach typów w schemacie XML (XSD), może odtworzyć oryginalne typy podczas parsowania. Bez schematu informacja o typie jest w praktyce tracona w przekonwertowanym dokumencie.
W jaki sposób tablice JSON są konwertowane na XML?
Każdy element tablicy staje się sibling elementem XML o tej samej nazwie tagu. Na przykład tablica JSON "colors": ["red", "blue"] produkuje dwa elementy: <colors>red</colors> i <colors>blue</colors>. Niektóre konwertery opakowują tablice w element nadrzędny (np. <colorsList>), ale podejście z powtarzanymi elementami sibling jest powszechniejsze i odpowiada konwencji stosowanej przez JAXB, Jackson i fast-xml-parser.
Co dzieje się z wartościami null podczas konwersji?
Wartość null w JSON zazwyczaj konwertuje się na pusty element XML — na przykład "middle_name": null staje się <middle_name/>. Niektóre biblioteki dodają atrybut xsi:nil="true", aby zasygnalizować jawną wartość null, co jest przydatne, gdy system docelowy waliduje dane względem schematu XSD. Ten konwerter domyślnie generuje samozamykający pusty element.
Czy mogę z powrotem przekonwertować XML na JSON?
Tak, ale konwersja w obie strony nie zawsze jest symetryczna. Cechy XML takie jak atrybuty, instrukcje przetwarzania, komentarze, treść mieszana i przestrzenie nazw nie mają bezpośredniego odpowiednika w JSON. Konwersja XML na JSON i z powrotem na XML może produkować strukturalnie inny dokument. Jeśli potrzebujesz konwersji XML na JSON, użyj dedykowanego konwertera XML na JSON, który zachowuje atrybuty i przestrzenie nazw.
Jak obsługiwać klucze JSON, które nie są prawidłowymi nazwami elementów XML?
Nazwy elementów XML nie mogą zaczynać się od cyfry, zawierać spacji ani większości znaków specjalnych. Jeśli Twój JSON ma klucz taki jak "2024-data" lub "first name", konwerter musi go oczyścić — zazwyczaj przez dodanie prefiksu podkreślenia lub zastąpienie nieprawidłowych znaków podkreśleniami. Sprawdź wyjście konwertera i dostosuj nazwy kluczy w źródłowym JSON, jeśli wynikowy XML musi przejść walidację XSD.
Jaki jest maksymalny rozmiar JSON obsługiwany przez to narzędzie?
Konwerter działa w silniku JavaScript przeglądarki, więc praktyczny limit zależy od dostępnej pamięci. Większość nowoczesnych przeglądarek bez problemu obsługuje dokumenty JSON do 50–100 MB. W przypadku większych plików użyj konwertera strumieniowego, takiego jak xmltodict Pythona lub narzędzia wiersza poleceń, które przetwarza dane przyrostowo, zamiast ładować wszystko do pamięci.
Czy wyjście XML jest poprawnie sformułowane czy walidowane?
Wyjście jest zawsze poprawnie sformułowanym XML — tagi są prawidłowo zagnieżdżone, znaki specjalne są eskejpowane, a dokument ma jeden element główny. To, czy wyjście jest walidowane, zależy od docelowego schematu (XSD lub DTD). Poprawne sformułowanie to gwarancja strukturalna; walidność wymaga, aby nazwy elementów, kolejność zagnieżdżenia i typy zawartości odpowiadały konkretnej definicji schematu.