Konwerter XML ↔ JSON
Konwertuj dokumenty XML na JSON i z powrotem, razem z atrybutami
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.