Przejdź do treści

Konwertuj XML na JSON

Zamień dokument XML na JSON: atrybuty jako klucze z @, powtarzające się elementy jako tablice, liczby z właściwym typem. Całość przetwarza parser XML przeglądarki, na urządzeniu.

Konwertuj na
Upuść plik XMLXML do 100 MB · JSON, CSV, XLSX, XLS, ODS do 500 MB
Wybierz plikPrzetwarzane na urządzeniu – pliki nie opuszczają urządzenia
Działa w przeglądarce · bez przesyłania na serwerJak to działa

Jak korzystać: XML na JSON

  1. 1

    Wklej lub upuść XML

    Plik .xml, kanał RSS lub Atom, odpowiedź SOAP albo dowolny tekst XML; kodowanie podane w deklaracji jest uwzględniane.

  2. 2

    Ustaw kształt JSON

    Atrybuty jako klucze z @, zwykłe klucze lub pominięte; tablice tylko dla powtarzających się elementów albo wszędzie; liczby z typem lub zachowane jako tekst.

  3. 3

    Skopiuj JSON

    Sformatowany lub zwarty – skopiuj go do schowka albo pobierz plik .json.

Limity i Pro

Pliki XML do 100 MB, wklejony XML o dowolnym rozmiarze, jaki zmieści przeglądarka.

O narzędziu: XML na JSON

Konwerter XML na JSON przyda się, gdy API, portal urzędowy lub stara integracja zwraca XML, a Twój kod potrzebuje JSON. Element główny dokumentu staje się jedynym kluczem najwyższego poziomu, każdy element podrzędny – właściwością, a element występujący kilka razy w jednym elemencie nadrzędnym – tablicą, w kolejności z dokumentu.

Atrybuty wymagają decyzji, bo JSON ich nie zna. Domyślnie zapisujemy je jako klucze zaczynające się od @ – <price currency="UZS">125000</price> zamienia się w {"@currency": "UZS", "#text": 125000}. Dzięki temu atrybuty i elementy podrzędne się nie mieszają, a JSON można zamienić z powrotem w identyczny XML. Zwykłe klucze dają krótsze obiekty, a pominięcie atrybutów pasuje do dokumentów, w których służą tylko do celów pomocniczych.

Wartości: przy włączonym wykrywaniu typów 42 i 3.5 stają się liczbami JSON, a true/false wartościami logicznymi. Wszystko, co zmieniłoby się po odczytaniu jako liczba, zostaje tekstem – kody pocztowe i numery kont z zerami na początku oraz liczby dłuższe niż 15 cyfr. Puste elementy stają się pustymi ciągami.

Przestrzenie nazw zostają w zapisie z dokumentu (dc:title) albo możesz usunąć prefiksy, by klucze były czytelniejsze; znikają wtedy też deklaracje xmlns. Opcja „Zawsze używaj tablic” nadaje wszystkim elementom podrzędnym ten sam kształt tablicy, co jest wygodne, gdy część rekordów ma jednego autora, a część trzech.

Nie są przenoszone: komentarze, instrukcje przetwarzania i DOCTYPE; tekst wymieszany ze znacznikami w treści, jak w akapitach XHTML, jest łączony w jeden ciąg.

Prywatność

XML jest analizowany w procesie roboczym w tle tej strony, bez żadnego żądania sieciowego; nie pobieramy DTD ani zewnętrznych encji, a dokument nie opuszcza Twojego urządzenia.

XML na JSON: najczęstsze pytania

Co oznacza #text w JSON?
Gdy element ma atrybuty lub elementy podrzędne, a do tego własny tekst, tekst potrzebuje osobnego klucza; #text to powszechna konwencja. <title lang="en">Guide</title> zamienia się w {"@lang": "en", "#text": "Guide"}. Element zawierający wyłącznie tekst staje się zwykłą wartością, więc <title>Guide</title> to po prostu "title": "Guide".
Czy liczby są konwertowane, czy zostają tekstem?
Gdy opcja „Wykrywaj liczby i wartości true/false” jest włączona, wartości, które wyraźnie są liczbami lub wartościami logicznymi, dostają typy JSON. Wartości z zerami na początku, jak 007 czy kod pocztowy, oraz liczby powyżej 15 cyfr zostają tekstem, bo zamiana na liczbę by je zmieniła. Wyłącz wykrywanie, by każda wartość została tekstem.
Jak są traktowane przestrzenie nazw, np. soap: lub dc:?
Domyślnie prefiksy zostają częścią klucza, więc dc:title to klucz "dc:title", a deklaracje xmlns pojawiają się jako atrybuty @xmlns. Włącz „Usuń prefiksy przestrzeni nazw”, by dostać title i pominąć deklaracje. Dwie różne przestrzenie nazw z taką samą nazwą lokalną będą wtedy dzielić klucz, więc zachowaj prefiksy, gdy to ważne.
Czy mogę potem zamienić JSON z powrotem na XML?
Tak. Na stronie JSON na XML wybierz XML jako cel: klucze zaczynające się od @ stają się atrybutami, #text tekstem elementu, a tablice powtarzającymi się elementami. Kolejność elementów w obrębie elementu nadrzędnego może się zmienić, gdy nazwy elementów podrzędnych były przeplatane, a komentarze znikają, ale same dane zostają zachowane.
Dlaczego dostaję błąd zamiast JSON?
XML nie jest poprawnie sformułowany, a komunikat podaje wiersz i kolumnę pierwszego problemu. Częste przyczyny to znak & zamiast &amp;, tag zamknięty w złej kolejności, wartość atrybutu bez cudzysłowu albo encje HTML, takie jak &nbsp;, których XML nie definiuje. Popraw to miejsce i wklej ponownie.

Inne zadania z tym narzędziem