Sprytne Okazje — promocje, kody rabatowe i wyprzedaże

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.

Bezpieczne (SSL)
Przetwarzanie Lokalne
100% Darmowe
Instrukcja
  • 1
    Wprowadź dane
    Wpisz treść, wklej tekst lub załaduj plik z dysku.
  • 2
    Kliknij przycisk
    Narzędzie natychmiast przetworzy Twoje dane w przeglądarce.
  • 3
    Pobierz wynik
    Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
function runTool() {
  return "Wynik gotowy w 0.1s";
}

Wynik pojawia się na bieżąco. Treść JSON nie jest nigdzie zapisywana.

Elementów

10

Linii XML

17

JSON

89 bajtów

XML

292 bajtów

Zmiana rozmiaru

+228%

XML względem wpisanego JSON

Wynik XML

<?xml version="1.0" encoding="UTF-8"?> <response> <status>ok</status> <data> <users> <item> <id>1</id> <name>Anna</name> </item> <item> <id>2</id> <name>Jan</name> </item> </users> <total>2</total> </data> </response>

Ściąga: jak JSON zamienia się w XML

Zasady konwersji stosowane przez to narzędzie
Co w JSONPrzykład JSONWynik 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 & < > " ' &amp; &lt; &gt; &quot; &apos;
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 JSONWynik w XMLUwagi
obiektelement nadrzędny z zagnieżdżonymi elementamiKażdy klucz obiektu staje się osobnym elementem potomnym.
tablicapowtarzalne elementy listyNazwa z pola „Element listy” albo powtórzona nazwa klucza (opcja „Nazwa elementów tablicy”).
pusta tablicaelement z komentarzem „pusta lista”Pozwala odróżnić pustą listę od braku pola.
tekstelement z tekstem w środkuZnaki & < > " ' są zamieniane na encje &amp; &lt; &gt; &quot; &apos;.
liczbaelement z tekstem liczby10.0 zapisuje się jako 10; liczby całkowite spoza zakresu 64 bitów przechodzą cyfra w cyfrę.
booleantekst true albo falseNie powstaje osobny znacznik typu logicznego.
nullpusty element <x></x>Element istnieje, ale nie ma zawartości tekstowej.
klucz z myślnikiem lub kropkąnazwa bez zmianMyślniki i kropki są dozwolone w nazwach XML.
klucz ze spacją, dwukropkiem lub innym niedozwolonym znakiemznak zamieniony na podkreślenieimię i nazwisko → imię_i_nazwisko; polskie litery zostają.
klucz zaczynający się od cyfryprefiks 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

  1. 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.
  2. Pole status ma wartość tekstową ok. Powstaje element status z tekstem ok w środku, bez dodatkowego elementu pośredniego.
  3. 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.
  4. 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.
  5. 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.
  6. 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 b i a_b dadzą po zamianie ten sam element a_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ęć.

Zainstaluj Webp.pl Miej narzędzia we własnej kieszeni!