XML u JSON pretvarač
Pretvorite XML podatke ili datoteke u JSON format trenutno u svom pregledniku. Podržava prilagođeno uvlačenje i obrađuje ugniježđene strukture.
Odaberite XML datoteku
ili povucite i ispustite ovdje
Pretvorite XML podatke ili datoteke u JSON format trenutno u svom pregledniku. Podržava prilagođeno uvlačenje i obrađuje ugniježđene strukture.
ili povucite i ispustite ovdje
XML i JSON su formati za razmjenu podataka, ali dolaze iz različitih razdoblja weba. XML, standardiziran 1998., dizajniran je kao samoopisivi označni format s atributima, prostorima imena i provjerom valjanosti sheme. JSON se pojavio početkom 2000-ih kao lakši format koji je bolje prilagođen JavaScript runtimeima i modernim API-jima. Većina novih web API-ja govori JSON; mnogi stariji sustavi — SOAP usluge, RSS izvori, konfiguracijske datoteke, poslovne integracije — još uvijek proizvode XML. Pretvorba između njih jedan je od najčešćih zadataka interop-a u modernom razvoju.
Pretvorba nije savršeno bez gubitaka jer dva formata imaju različitu izražajnu snagu. XML ima atribute (koje JSON izvorno nema), razlikuje tekstualni sadržaj i nazive elemenata i podržava mješoviti sadržaj (elementi koji sadrže i tekst i podređene elemente). JSON-ov izravni model objekta/niza ne može izravno predstavljati te značajke, pa pretvarači primjenjuju konvencije: atributi postaju ključevi s prefiksom @, tekstualni sadržaj postaje ključ #text itd.
Ovaj pretvarač analizira XML pomoću DOMParsera ugrađenog u preglednik i obilazi rezultirajuće DOM stablo kako bi proizveo JSON. Elementi s istim imenom oznake kao braća i sestre prikupljaju se u nizove; atributi ulaze u posebne ključeve; prostori imena i upute za obradu su sačuvani kada su prisutni. Rezultat je čitljiv JSON koji se razumno vraća u XML.
Većina modernih aplikacijskih kodova ugodnija je s JSON-om. JavaScript izvorno analizira JSON, Pythonov json modul nalazi se u standardnoj biblioteci, a gotovo svaki drugi jezik ima ekvivalentnu prvoklasnu JSON podršku. XML obrada zahtijeva uvoz dodatnih biblioteka i pisanje više šablona. Pretvaranje dolaznog XML-a u JSON prije obrade često je najbrži put od vanjskog XML feeda do unutarnje strukture podataka.
Alati se također oslanjaju na JSON. JSON uljepšavači, validatori, validatori shema, upitni jezici (jq, JSONPath) i preglednici su u izobilju; XML ekvivalenti su manje i često su stariji. Rad u JSON-u otključava bogatiji ekosustav alata.
Zalijepite XML, nabavite JSON.
DOMParser proizvodi XML DOM identičan onome što preglednik koristi za XHTML stranice. Pretvarač hoda ovim DOM-om rekurzivno. Za svaki element stvara JSON objekt: atributi postaju ključevi s prefiksom @ (npr. @id, @class); podređeni elementi elementa se rekurziraju u istu strukturu; tekstualni sadržaj, kada je prisutan uz djecu, živi pod ključem #text.
Ponovljeni podređeni elementi s istim nazivom oznake skupljaju se u JSON polje. Jedno dijete zadanog imena pojavljuje se kao vrijednost objekta; više djece pojavljuje se kao niz objekata. Ova konvencija dobro funkcionira u praksi, ali znači da JSON oblik ovisi o tome hoće li se elementi pojaviti jednom ili više puta — što je poznata nesavršenost XML-u-JSON mapiranja.
Prostori imena su sačuvani kao dio imena elemenata (prefiks:localName). Upute za obradu i odjeljci CDATA pretvaraju se u tekstualni sadržaj. XML deklaracije i DOCTYPE uklanjaju se iz JSON izlaza, ali ne utječu na podatke.