onlinetools.dev

Konwerter XML ↔ JSON

Konwertuj dokumenty XML na JSON i z powrotem, razem z atrybutami

Działa lokalnie
loading…
O tym narzędziu

Konwertuj XML na JSON, żeby podać stare odpowiedzi SOAP, kanały RSS albo pliki POM Mavena do JavaScriptu, jq lub API mówiącego natywnie w JSON — albo idź w drugą stronę i wyprodukuj XML z danych JSON. Atrybuty są zachowywane: stają się kluczami „@_nazwa”, a treść tekstowa współistniejąca z atrybutami ląduje pod „#text”, więc żadna informacja nie znika po cichu.

Oba formaty różnią się w rzeczach podstawowych, a ten konwerter dokonuje standardowych, pragmatycznych wyborów: powtarzające się elementy rodzeństwa zwijają się w tablicę JSON, wartości wyglądające na liczby stają się liczbami, a przestrzenie nazw podróżują jako część nazwy elementu. Obieg XML → JSON → XML zachowuje strukturę i treść typowych dokumentów.

Oba kierunki działają lokalnie w Twojej przeglądarce. Wklej kanał z fakturami albo odpowiedź API, a nic nigdzie nie pojedzie.

Często zadawane pytania

Dlaczego niektóre wartości wracają jako liczby zamiast napisów?
Parser rozpoznaje tekst liczbowy i go konwertuje, czego oczekuje większość odbiorców. Uważaj na identyfikatory z wiodącymi zerami (kody produktów, numery telefonów) — jeśli to ma dla Twoich danych znaczenie, ujmij je w cudzysłów po konwersji albo potraktuj wynik jako punkt wyjścia.
Jak traktowane są powtarzające się elementy?
Dwa lub więcej elementów rodzeństwa o tej samej nazwie stają się tablicą JSON pod tym kluczem. Pojedyncze wystąpienie pozostaje zwykłym obiektem — ta asymetria jest wpisana w to odwzorowanie, więc kod czytający ten JSON powinien znieść oba kształty albo najpierw je ujednolicić.
Co oznaczają klucze @_ i #text?
@_ oznacza to, co było atrybutem XML, a #text niesie tekst elementu, gdy występują też atrybuty. Podanie tej samej konwencji z powrotem w kierunku JSON → XML odtwarza oryginalny dokument.
Dlaczego JSON → XML odrzuca moją tablicę na najwyższym poziomie?
Dokument XML musi mieć dokładnie jeden element główny, a goła tablica nie ma żadnego. Zawiń ją w obiekt — {"items": {"item": [...]}} — a konwerter wyprodukuje poprawny składniowo dokument.
Powiązane narzędzia