DokumentyObrazyMediaNarzędzia PDF

Konwerter XML na JSON Online

Przekonwertuj XML na JSON w swojej przegladarce. Idealny do migracji SOAP na REST, parsowania kanalów RSS/Atom lub przetwarzania starszego XML.

// Invalid XML: DOMParser is not defined
Processed in your browser

XML na JSON: zmodernizuj swoj stos danych

Migracja SOAP na REST

Konwertuj odpowiedzi uslug webowych SOAP (XML) na JSON, aby integrowac je z nowoczesnymi API REST i klientami JavaScript.

Kanaly RSS i Atom

Parsuj kanaly RSS 2.0 i Atom 1.0 do JSON do przetwarzania w JavaScript, przechowywania w MongoDB lub wyswietlania w aplikacjach webowych.

100% prywatne

Twoj XML jest przetwarzany w Twojej przegladarce za pomoca natywnego DOMParser. Nigdy nie opuszcza Twojego urzadzenia.

Starszy XML

Przetwarzaj zasoby Androida (strings.xml, layouty), mapy witryn, manifesty SOAP lub dowolny starszy format XML.

Trzy kroki, żadnych komplikacji

1

Wklej swoj XML

Wklej dowolny prawidlowy XML: odpowiedz SOAP, kanal RSS/Atom, sitemap.xml, manifest Androida lub dowolny dokument XML 1.0.

2

Inteligentna konwersja

Atrybuty XML sa konwertowane z prefiksem @, tresc tekstowa trafia pod klucz #text, a powtarzajace sie elementy sa automatycznie grupowane w tablice.

3

Pobierz lub skopiuj JSON

Otrzymaj ustrukturyzowany JSON gotowy do uzycia w swoim API REST, bazie danych NoSQL lub kodzie JavaScript/Python.

Masz pytania?

XML pozwala zarowno elementom podrzednym, jak i atrybutom przechowywac dane, bez bezposredniego odpowiednika w JSON. Najszerzej przyjeta konwencja (uzywana przez xml2js w Node.js, xmltodict w Pythonie i JAXB w Javie) polega na poprzedzeniu atrybutow znakiem @: element <user id="42" role="admin"> staje sie {"user": {"@id": "42", "@role": "admin"}}. Tresc tekstowa elementow mieszanych (tych posiadajacych zarowno atrybuty, jak i tekst) jest umieszczana pod kluczem #text: <title lang="pl">Witaj</title> staje sie {"title": {"@lang": "pl", "#text": "Witaj"}}. Konwencja ta jest zgodna ze specyfikacja BadgerFish i najpoularniejszymi narzeddziami ekosystemu.

W XML stworzenie wielu elementów rodzenskich o tej samej nazwie jest jak najbardziej prawidlowe: <items><item>A</item><item>B</item></items>. JSON nie moze reprezentowac wielu identycznych kluczy w tym samym obiekcie (co byloby nieprawidlowym JSON zgodnie z RFC 7159). Standardowym rozwiazaniem jest grupowanie ich w tablice: {"items": {"item": ["A", "B"]}}. Dobry konwerter automatycznie wykrywa powtarzajace sie elementy i konwertuje je na tablice, nawet gdy sa tylko dwa. Moze to powodowac niespojnosci, jesli czasami wystepuje jeden element, a czasami kilka: JSON mialbys ciag w jednym przypadku, a tablice w innym. Rozwiazaniem jest zawsze normalizowanie na tablice dla pol, ktore moga sie powtarzac.

Przestrzenie nazw XML (zdefiniowane przez W3C w 'Namespaces in XML 1.0', opublikowane w styczniu 1999, zmienione w sierpniu 2006) to funkcja XML bez odpowiednika w JSON. Najczestszym sposobem reprezentacji jest uwzglednienie prefiksu przestrzeni nazw jako czesci nazwy klucza: element <soap:Body xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> staje sie {"soap:Body": {...}}. Deklaracje przestrzeni nazw (xmlns:prefix="uri") sa traktowane jako atrybuty i pojawiaja sie jako @xmlns:prefix. W przypadkach uzycia, jak migracja SOAP na REST, gdzie przestrzenie nazw sa wszechobecne, czesto wymagane jest post-przetwarzanie w celu usuniecia prefiksow przestrzeni nazw z wynikowego JSON.

CDATA (Character Data) to specjalna sekcja XML, ktora pozwala wlaczac tekst zawierajacy normalnie zarezerwowane znaki (< > & ' ") bez uzywania encji XML (&lt; &gt; &amp;). Skladnia to <![CDATA[tresc tutaj]]>. CDATA jest czesto uzywane do wlaczania HTML, JavaScript, SQL lub dowolnego tekstu ze znakami specjalnymi wewnatrz elementu XML. Podczas konwersji do JSON tresc CDATA jest traktowana jako zwykly tekst: sekcje CDATA sa zastepowane ich trescia bez znacznikow, a wynik jest umieszczany jako normalny ciag w wartosci pola JSON. Jezeli XML zawiera <description><![CDATA[<b>Pogrubiony tekst</b>]]></description>, wynikowy JSON to {"description": "<b>Pogrubiony tekst</b>"}.

Konwersja odbywa sie w Twojej przegladarce przy uzyciu natywnego DOMParser przegladarki do parsowania XML i niestandardowego serializatora JSON. DOMParser moze obsluzyc pliki XML o wielkosci kilkudziesieciu MB w nowoczesnych przeglarkach (Chrome, Firefox, Edge). W przypadku duzych plikow (powyzel 10 MB) proces moze zajac kilka sekund. W przypadku bardzo duzych plikow XML (powyzel 100 MB, jak mapy witryn z setkami tysiecy adresow URL lub zrzuty baz danych XML) zalecamy narzedzia strumieniujace, takie jak xml2json w Node.js ze strumieniami, xmltodict w Pythonie z trybem iterparse biblioteki xml.etree lub procesor Saxon do XML klasy korporacyjnej.

Konwertuj XML na JSON: migracja SOAP na REST, kanaly RSS i przetwarzanie starszego XML

XML (Extensible Markup Language) zostal zdefiniowany przez W3C w rekomendacji XML 1.0 (opublikowanej 10 lutego 1998, aktualnie w piatym wydaniu z listopada 2008 roku). Przez cala dekade lat 2000. XML byl uniwersalnym formatem wymiany danych: SOAP (Simple Object Access Protocol, specyfikacja W3C 2003) uzywalo XML jako formatu wiadomosci, RSS 2.0 (wydany przez Dave'a Winera w 2002 roku) i Atom 1.0 (RFC 4287, grudzien 2005) dystrybuowaly kanaly newsow w XML, Android (uruchomiony przez Google w 2008 roku) uzywalo XML dla layoutow, ciagów i manifestow aplikacji, a SVG (Scalable Vector Graphics, W3C 1.1 z 2003 roku) jest XML-em. Przejscie na JSON jako glowny format wymiany danych rozpoczelo sie wraz z popularyzacja AJAX i specyfikacja JSON Douglasa Crockforda (RFC 4627, lipiec 2006, zastapiony przez RFC 7159 w 2014 roku). Dzisiaj wiekszosc nowych API uzywa JSON/REST, ale miliony starszych systemow, uslug B2B i standardowych formatow branzzowych (UBL, HL7 FHIR w XML, SOAP, KML, GPX) nadal korzystaja z XML.

Konwersja XML na JSON nie jest prosta, poniewaz oba modele danych maja fundamentalne roznice koncepcyjne. XML to model drzewa wezlow (elementy, atrybuty, tekst, komentarze, instrukcje przetwarzania, CDATA), w ktorym elementy moga miec zarowno atrybuty, jak i zawierac elementy podrzedne lub tekst jednoczesnie. JSON to model drzewa wartosci (obiekty, tablice, ciagi, liczby, wartosci logiczne, null) bez koncepcji atrybutow oddzielonych od tresci. Glowne konwencje konwersji to: atrybuty XML jako klucze z prefiksem @ (konwencja BadgerFish/xml2js); tresc tekstowa elementu mieszanego pod kluczem #text; powtarzajace sie elementy grupowane w tablice; przestrzenie nazw zachowane jako prefiksy kluczy; CDATA traktowane jako zwykly tekst. Konwencja BadgerFish, udokumentowana na badgerfish.de i przyjeta przez najpopularniejsze biblioteki, jest de facto standardem tej konwersji.

W przypadku produkcyjnych zastosowan duzej skali, najszerzej uzywanymi narzeddziami sa: xml2js (Node.js, ponad 25 milionow miesięcznych pobran na npm), xmltodict (Python, oparty na xml.etree ze standardowej biblioteki), JAXB (Java, czesc Jakarta EE) i encoding/xml (standardowa biblioteka Go). W przypadku migracji starszych uslug SOAP na REST, narzedzia takie jak Apache Camel, MuleSoft Anypoint i AWS API Gateway z transformacjami payloadu oferuja natywna integracje XML-na-JSON na poziomie middleware. W przypadku sitemap.xml (protokol Sitemaps zdefiniowany na sitemaps.org, przyjety przez Google w 2005 roku) konwersja na JSON umozliwia przetwarzanie list URL za pomoca JavaScript bez parsera XML. Convertir.ai uzywa natywnego DOMParser przegladarki (standardowe API W3C, dostepne we wszystkich nowoczesnych przeglarkach od 2004 roku) do parsowania XML i niestandardowego serializatora do generowania JSON, gwarantujac pelna prywatnosc przez brak wysylania danych na serwer.