Preskoči na sadržaj
1001 Tools
en

Nalepite JSON i dobijte ispravan, uvučen XML. Objekti postaju ugnežđeni elementi nazvani po ključevima, nizovi postaju ponovljeni elementi, a primitivne vrednosti postaju tekst. Možete zadati naziv korenskog elementa, a sve radi u pregledaču — JSON se nikada ne šalje.

XML izlaz
Podeli FacebookXLinkedInWhatsAppViber

Kako radi

JSON se parsira i obilazi rekurzivno. Svako svojstvo objekta postaje podelement nazvan po ključu; ugnežđeni objekti ugnežđuju svoje elemente; a niz proizvodi isti element ponovljen jednom po stavci, što je standardan način predstavljanja lista u XML-u. Vrednosti se pretvaraju u tekst i XML-escape-uju, pa se znakovi poput &, < i " pretvaraju u entitete i izlaz ostaje ispravan.

Pošto su nazivi XML elemenata stroži od JSON ključeva, ključevi se čiste: znakovi koji nisu slova, cifre, crtice, donje crte ili tačke zamenjuju se donjom crtom, a dodaje se početna donja crta ako bi naziv počinjao cifrom. JSON čiji je najviši nivo niz uvija se u korenski element sa <item> decom, pa rezultat uvek ima tačno jedan koren kako XML zahteva. Atributi se ne generišu — svaka vrednost je izražena kao element, što je nedvosmisleno i čisto se vraća nazad.

Primeri iz prakse

Objekat konfiguracije

{"server":{"host":"localhost","port":8080}} postaje <root> sa ugnežđenim <server> koji sadrži <host> i <port> elemente — spremno za XML konfiguraciju.

Lista zapisa

Niz poput [{"id":1},{"id":2}] uvija se kao <root> sa dvoje <item> dece, svako sa <id>, dajući ispravan XML sa jednim korenom.

Preimenovanje korena

Postavite naziv korena na „catalog” i {"book":"…"} postaje <catalog><book>…</book></catalog> umesto podrazumevanog <root> omotača.

Česta pitanja

Kako se JSON nizovi predstavljaju u XML-u?

Kao ponovljeni elementi. Niz pod ključem „tag” postaje nekoliko <tag> elemenata, po jedan za svaku stavku — uobičajen XML način izražavanja liste, jer XML nema poseban tip niza.

Šta se dešava sa nizom na najvišem nivou?

Uvija se unutar korenskog elementa sa svakom stavkom kao <item> detetom. XML zahteva tačno jedan korenski element, pa se gola lista ne može predstaviti bez omotača.

Zašto su neki moji ključevi promenjeni?

Nazivi XML elemenata ne mogu sadržati razmake ni većinu simbola i ne mogu počinjati cifrom. Neispravni znakovi se zamenjuju donjom crtom i dodaje se početna donja crta gde je potrebno, pa je izlaz uvek ispravan.

Da li pravi atribute ili samo elemente?

Samo elemente. Predstavljanje svake vrednosti kao elementa je nedvosmisleno i izbegava nagađanje koja polja treba da budu atributi. Ako vam trebaju atributi, moraćete naknadno da obradite izlaz.

Da li se posebni znakovi escape-uju?

Da. Ampersandi, uglaste zagrade i dvostruki navodnici u vrednostima pretvaraju se u XML entitete (&amp;, &lt;, &gt;, &quot;) da XML ostane ispravan.

Kako se obrađuju null i prazni objekti?

Vrednost null, prazan objekat i prazan niz svi postaju samozatvarajući element poput <key/>, što je kompaktan i ispravan način da se predstavi „bez sadržaja”.

Da li je izlaz uvučen?

Da, sa dva razmaka po nivou, pa je lako čitljiv. Ako vam treba kompaktan, možete propustiti rezultat kroz XML minifikator ili sami ukloniti razmake.

Može li da pretvori XML nazad u JSON?

Ne ovaj alat — ide samo iz JSON-a u XML. XML-u-JSON je posebna konverzija sa sopstvenim dvosmislenostima (atributi, mešani sadržaj) i zahtevala bi namenski alat.

Da li se moji podaci šalju?

Ne. Konverzija se u potpunosti izvršava u vašem pregledaču pomoću JavaScript-a. Ništa se ne šalje na server, i radi van mreže kada se stranica učita.

Srodni alati