Przejdź do treści
TextArray
100% lokalnie

Konwerter XML na JSON

Konwertuj XML na równoważny JSON — atrybuty z prefiksem, powtórzone tagi jako tablice.

Wejście
Wynik

Konwerter XML na JSON

XML i JSON oba opisują dane strukturalne, ale narzędzia wokół ciebie rzadko mówią oboma. Stare API SOAP, kanał RSS, layout Androida, plik konfiguracyjny czy eksport danych daje ci XML; twój skrypt, baza danych czy frontend chce JSON. To narzędzie konwertuje między nimi prawdziwym parserem — nie hackiem na regex — który poprawnie obsługuje trudne części XML: zagnieżdżone elementy, atrybuty, treść mieszaną, tagi samozamykające, komentarze, sekcje CDATA, deklarację XML i DOCTYPE.

Odwzorowanie idzie za szeroko używaną konwencją. Atrybuty elementu stają się kluczami z prefiksem @ (konfigurowalne), więc <user id="7"> daje "@id": "7". Elementy potomne zagnieżdżają się jako obiekty; gdy tag się powtarza — trzy elementy <item> z rzędu — scalają się w jedną tablicę, czego właśnie chcesz dla list. Element mający tylko tekst staje się zwykłym ciągiem; ten z tekstem i atrybutami trzyma tekst pod kluczem #text. Encje jak &amp; i odwołania numeryczne jak &#65; są dekodowane, a treść CDATA brana dosłownie.

Ponieważ to prawdziwy parser zejścia rekurencyjnego, waliduje podczas czytania: niedopasowany tag zamykający, niezakończony komentarz czy zabłąkana treść po korzeniu tworzą jasny błąd z numerem wiersza zamiast po cichu zniekształcić wynik. Wybierz wcięcie dwu- lub czterospacjowe dla czytelnego wyniku, albo zminifikuj do jednego wiersza do osadzenia.

Wszystko działa lokalnie w twojej przeglądarce — dane nigdy nie opuszczają twojego urządzenia, co ma znaczenie przy eksportach XML, które często niosą rekordy i identyfikatory.

Częste pytania

Jak atrybuty XML są reprezentowane w JSON?
Jako klucze z prefiksem @ domyślnie (prefiks można zmienić). Więc <book lang="en"> staje się { "book": { "@lang": "en" } }. To konwencja bibliotek jak xml-js i badgerfish, więc wynik wpasowuje się w większość toolchainów.
Co dzieje się z powtórzonymi tagami?
Stają się tablicą. Trzy potomne <item> scalają się w "item": [ … ], czego lista potrzebuje. Tag pojawiający się raz zostaje pojedynczą wartością — uwaga, to znaczy, że dokument z jednym elementem i inny z kilkoma mapują się na różne kształty, co jest nieodłączne dla XML→JSON.
Czy obsługuje treść mieszaną i CDATA?
Tak. Element z tekstem i potomkami (lub atrybutami) trzyma tekst pod kluczem #text. Sekcje CDATA są brane dosłownie, więc ich markup <raw> i znaki & przeżywają bez parsowania. Komentarze i instrukcje przetwarzania są pomijane.
Czemu zgłosił błąd zamiast konwertować?
To parser walidujący: niedopasowany tag zamykający, niecytowany atrybut, niezakończony komentarz czy treść po elemencie głównym zatrzymują konwersję z komunikatem z numerem wiersza. To celowe — zła, ale cicha konwersja jest gorsza niż jasny błąd.
Czy mój XML jest gdzieś wysyłany?
Nie. Parsowanie i konwersja działają wyłącznie w twojej przeglądarce, a dane nigdy nie opuszczają twojego urządzenia.