Konwerter JSON na XML
Zamienia JSON na XML z własną nazwą elementu głównego i elementów listy, encjami dla znaków specjalnych i wcięciami.
-
1Wprowadź dane
Wpisz treść, wklej tekst lub załaduj plik z dysku. -
2Kliknij przycisk
Narzędzie natychmiast przetworzy Twoje dane w przeglądarce. -
3Pobierz wynik
Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
return "Wynik gotowy w 0.1s";
}
Wynik pojawia się na bieżąco. Treść JSON nie jest nigdzie zapisywana.
Elementów
Linii XML
JSON
XML
Zmiana rozmiaru
XML względem wpisanego JSON
Wynik XML
Ściąga: jak JSON zamienia się w XML
| Co w JSON | Przykład JSON | Wynik w XML |
|---|---|---|
| Obiekt | {"a":1} | <a>1</a> |
| Tablica | ["x","y"] | <item>x</item><item>y</item> (nazwa z pola „Element listy”) |
| Tekst lub liczba | {"imie":"Anna","cena":99.5} | <imie>Anna</imie><cena>99.5</cena> |
| true / false | {"ok":true} | <ok>true</ok> |
| null | {"x":null} | <x></x> (pusty element) |
| Pusta tablica | {"x":[]} | <x><!-- pusta lista --></x> |
| Znaki specjalne | & < > " ' | & < > " ' |
| Klucz od cyfry lub ze spacją | {"1szy":1,"imię i nazwisko":"Jan"} | <field_1szy>1</field_1szy><imię_i_nazwisko>Jan</imię_i_nazwisko> |
Tablice i nazwy elementów
XML nie ma tablic, więc każdy element listy dostaje własny znacznik. Domyślnie nosi on nazwę z pola „Element listy”. Opcja „Powtórzona nazwa klucza” zamienia {"users":[…]} na kilka sąsiednich elementów <users>.
Poprawne nazwy i znaki specjalne
Nazwa elementu musi zaczynać się od litery lub podkreślenia. Niedozwolone znaki zamieniamy na _, a klucze zaczynające się np. od cyfry dostają prefiks field_. W treści znaki & < > i cudzysłowy są zamieniane na encje.
Typy i liczby
XML nie rozróżnia typów: liczby, true, false trafiają jako tekst, a null daje pusty element. Liczba zmiennoprzecinkowa jest zapisywana w najkrótszej postaci, więc 10.0 w XML przyjmie postać 10.
Jak liczymy elementy
Licznik obejmuje każdy klucz i każdy element tablicy. Dla {"users":[{"id":1}]} są to trzy elementy: users, item i id.
Narzędzie nie tworzy atrybutów ani przestrzeni nazw i nie sprawdza zgodności z XSD. Do walidacji schematu użyj parsera lub walidatora XML.
Oceń to narzędzie:
Powiązane narzędzia
Inne narzędzia, które mogą Ci się przydaćKonwerter JSON na XML
Konwerter JSON na XML zamienia dane JSON na dokument XML 1.0 w kodowaniu UTF-8: każdy klucz obiektu staje się elementem, a każda pozycja tablicy osobnym elementem listy. Przydaje się tam, gdzie odbiorca przyjmuje tylko XML – w bankach, integracjach B2B i starszych API.
W formularzu ustawiasz nazwę elementu głównego (domyślnie response) i elementu listy (domyślnie item), sposób nazywania pozycji tablic, deklarację <?xml version="1.0" encoding="UTF-8"?> oraz wcięcie: 2 spacje, 4 spacje albo tabulator. Po wyłączeniu formatowania cały XML trafia do jednej linii. Wynik odświeża się podczas pisania, a nad nim widać liczbę elementów i linii, rozmiar JSON i XML w bajtach oraz procentową zmianę rozmiaru. Gdy JSON ma błąd składni, narzędzie podaje linię, kolumnę i przyczynę, np. zbędny przecinek przed „}” albo apostrofy zamiast cudzysłowów.
Zasady konwersji
| Typ w JSON | Wynik w XML | Uwagi |
|---|---|---|
| obiekt | element nadrzędny z zagnieżdżonymi elementami | Każdy klucz obiektu staje się osobnym elementem potomnym. |
| tablica | powtarzalne elementy listy | Nazwa z pola „Element listy” albo powtórzona nazwa klucza (opcja „Nazwa elementów tablicy”). |
| pusta tablica | element z komentarzem „pusta lista” | Pozwala odróżnić pustą listę od braku pola. |
| tekst | element z tekstem w środku | Znaki & < > " ' są zamieniane na encje & < > " '. |
| liczba | element z tekstem liczby | 10.0 zapisuje się jako 10; liczby całkowite spoza zakresu 64 bitów przechodzą cyfra w cyfrę. |
| boolean | tekst true albo false | Nie powstaje osobny znacznik typu logicznego. |
| null | pusty element <x></x> | Element istnieje, ale nie ma zawartości tekstowej. |
| klucz z myślnikiem lub kropką | nazwa bez zmian | Myślniki i kropki są dozwolone w nazwach XML. |
| klucz ze spacją, dwukropkiem lub innym niedozwolonym znakiem | znak zamieniony na podkreślenie | imię i nazwisko → imię_i_nazwisko; polskie litery zostają. |
| klucz zaczynający się od cyfry | prefiks field_ | 1szy → field_1szy, bo nazwa XML musi zaczynać się od litery lub podkreślenia. |
Przykład
{"status":"ok","users":[{"id":1},{"id":2}]}
Zamiana JSON na XML przy ustawieniach domyślnych (element główny response, element listy item, wcięcie 2 spacje, deklaracja włączona) daje:
<?xml version="1.0" encoding="UTF-8"?>
<response>
<status>ok</status>
<users>
<item>
<id>1</id>
</item>
<item>
<id>2</id>
</item>
</users>
</response>
Po przełączeniu „Nazwa elementów tablicy” na „Powtórzona nazwa klucza” znika element grupujący, a każdy obiekt z tablicy dostaje nazwę klucza (deklarację pominięto):
<response>
<status>ok</status>
<users>
<id>1</id>
</users>
<users>
<id>2</id>
</users>
</response>
Jak działa konwersja JSON na XML
Narzędzie przechodzi rekurencyjnie po całym dokumencie JSON. Dla każdej pary klucz-wartość tworzy element XML, którego nazwą jest klucz, a zawartością wynik przetworzenia wartości. Na końcu całość opakowuje w element główny ustawiony w formularzu. Struktura XML jest więc bezpośrednim odbiciem struktury JSON: zagnieżdżony obiekt staje się zagnieżdżonym elementem, a tablica elementem grupującym z powtarzalnymi elementami listy. Tablica w tablicy daje kolejny poziom elementów listy, a jeśli cały JSON jest tablicą, jej pozycje trafiają bezpośrednio do elementu głównego. Nie musisz ręcznie mapować każdego pola, dopóki układ JSON odpowiada oczekiwanej strukturze XML.
Tekst, liczba i boolean trafiają do wnętrza elementu jako tekst, a null tworzy pusty element. XML nie przechowuje informacji o typie, więc liczba 1 i tekst „1” wyglądają w wyniku tak samo. Odbiorca musi wiedzieć ze schematu, czy dane pole ma być liczbą, czy napisem. To ważne przy integracjach, gdzie XSD wymaga konkretnego typu, a XML sam z siebie go nie narzuca. Liczby z częścią ułamkową są zapisywane w najkrótszej postaci (10.0 → 10, 99.50 → 99.5), a bardzo duże liczby całkowite, np. 20-cyfrowe identyfikatory, przechodzą bez zaokrąglenia.
Nazwy elementów są budowane z kluczy JSON. Litery (także polskie), cyfry, podkreślenia, myślniki i kropki zostają bez zmian, a każdy inny znak – spacja, dwukropek, ukośnik, nawias – zamienia się na podkreślenie. Klucz, który nie zaczyna się od litery ani podkreślenia, dostaje prefiks field_. Nazwy elementu głównego i elementu listy są czyszczone inaczej: niedozwolone znaki znikają, a nazwę zaczynającą się od cyfry poprzedza litera x. Z soap:Envelope powstaje więc soapEnvelope, a puste pole daje root lub item. Narzędzie nie tworzy atrybutów, nie dodaje przestrzeni nazw i nie waliduje dokumentu względem XSD. Wynik jest składniowo poprawnym XML, ale zgodność ze schematem odbiorcy zależy od ustawień nazw oraz od tego, czy Twój JSON ma odpowiedni kształt. Przed wdrożeniem porównaj wynik z przykładowym dokumentem wymaganym przez system docelowy.
Przykład krok po kroku z policzonym wynikiem
- Startowy JSON z poprzedniej sekcji to obiekt z dwoma polami: status oraz users. Element główny response opakowuje całą strukturę, a jego nazwa nie wpływa na nazwy pól wewnątrz.
- Pole status ma wartość tekstową ok. Powstaje element status z tekstem ok w środku, bez dodatkowego elementu pośredniego.
- Pole users jest tablicą o długości 2. Powstaje element users, a każdy z dwóch obiektów staje się osobnym elementem item. Element users pełni rolę kontenera, a nie zwykłego pola z tekstem.
- Pierwszy obiekt w tablicy ma pole id równe 1, więc wewnątrz pierwszego itemu powstaje element id z tekstem 1. Drugi item ma identyczną strukturę i różni się tylko wartością 2.
- Kafelek „Elementów” pokaże 6: status, users, dwa itemy i dwa id. Element główny i deklaracja XML nie są wliczane. W trybie „Powtórzona nazwa klucza” wynik spada do 5, bo znikają dwa itemy, a users występuje dwa razy.
- Wejściowy JSON ma 43 bajty. Sformatowany XML z deklaracją ma 12 linii i 185 bajtów, więc „Zmiana rozmiaru” pokaże +330%. Po wyłączeniu formatowania i deklaracji XML zajmuje 101 bajtów w jednej linii, czyli +135%. Różnicę robią znaczniki zamykające i wcięcia.
Praktyczne wskazówki przed konwersją
- Ustaw element główny pod odbiorcę. Jeśli system oczekuje response, request albo envelope, wpisz dokładnie taką nazwę. Zmiana nazwy roota nie zmienia danych, ale często decyduje o przejściu walidacji.
- Nazwa z pola „Element listy” dotyczy wszystkich tablic w dokumencie. Wiele API wymaga item, row, entry albo record. Gdy różne listy potrzebują różnych nazw, wybierz tryb „Powtórzona nazwa klucza” i nadaj kluczom w JSON docelowe nazwy, np.
"user":[…]zamiast"users":[…]. - Przejrzyj klucze przed konwersją. Spacje, dwukropki i ukośniki zamienią się na podkreślenia, a cyfra na początku doda prefiks field_. Jeśli odbiorca wymaga konkretnych nazw elementów, popraw je w JSON.
- Liczby i booleany staną się tekstem. Jeśli XML ma przejść walidację XSD, upewnij się, że schemat akceptuje takie wartości, np. true i false dla typu xs:boolean.
- Atrybutów nie będzie. Gdy potrzebujesz na przykład id jako atrybutu, zaplanuj ręczną edycję lub transformację XSLT przed wdrożeniem integracji.
Ograniczenia i ryzyka
- Brak atrybutów i przestrzeni nazw. Nie odwzorujesz elementu z identyfikatorem w atrybucie ani prefiksów typu soap:, bo dwukropek w kluczu zamienia się na podkreślenie. Jeśli API wymaga atrybutów, konwerter będzie tylko pierwszym krokiem.
- Kolizje nazw. Klucze
a bia_bdadzą po zamianie ten sam elementa_b, co utrudni odczyt lub walidację. Lepiej unikać takich nazw już na etapie tworzenia JSON. - Brak walidacji względem schematu. Narzędzie tworzy poprawny składniowo XML, ale nie sprawdza XSD, DTD ani wymagań konkretnego API. Nie poprawi też błędów logicznych w danych, na przykład brakujących pól.
- Limit rozmiaru. JSON może mieć do 200 000 znaków liczonych w bajtach, więc polska litera zajmuje dwa. Większy plik podziel na części albo przekonwertuj skryptem.
- Znaki sterujące. Niewidoczne znaki niedozwolone w XML 1.0 (kody 0–31 z wyjątkiem tabulatora, LF i CR) są usuwane z tekstu bez ostrzeżenia.
Najczęstsze pytania
Jak przekonwertować JSON na XML?
Wklej JSON w pole, ustaw element główny i element listy, a XML pojawi się obok na bieżąco. Przycisk „Kopiuj XML” przenosi wynik do schowka.
Jak zamienić tablicę na powtarzające się elementy o nazwie klucza?
W polu „Nazwa elementów tablicy” wybierz „Powtórzona nazwa klucza”. Wtedy {"tag":["a","b"]} da <tag>a</tag><tag>b</tag> zamiast elementu tag z dwoma itemami.
Co się stanie z kluczami, które mają spacje lub zaczynają się od cyfry?
Spacja i inne niedozwolone znaki zamieniają się na podkreślenie, a klucz zaczynający się od cyfry dostaje prefiks field_, np. 2024 → field_2024. Jeśli nazwa ma znaczenie dla odbiorcy, popraw ją w JSON przed konwersją.
Czy atrybuty są obsługiwane?
Nie, konwerter tworzy wyłącznie elementy. Atrybuty XML dodaj ręcznie lub użyj transformacji XSLT.
Dlaczego liczba w XML nie jest typem liczbowym?
XML przechowuje treść jako tekst. Konwerter nie dodaje deklaracji typu ani schematu, więc liczba 1 i tekst „1” wyglądają identycznie. O typie decyduje dopiero XSD lub logika odbiorcy.
Czy można wygenerować XML bez deklaracji i w jednej linii?
Tak. Odznacz „Deklaracja XML”, gdy fragment ma trafić do innego dokumentu, oraz „Formatuj”, aby dostać zapis w jednej linii bez wcięć.