JSON u XML pretvarač
Pretvori JSON u XML i XML u JSON u pregledaču, uz obradu atributa, ponovljenih elemenata i CDATA. Ništa se ne otprema na server.
Kako da koristiš JSON u XML pretvarač
- Izaberi smer u odeljku Pretvaranje: JSON → XML ili XML → JSON.
- Nalepi podatke ili klikni Otvori fajl da učitaš
.jsonili.xmlfajl (do 10 MB). - Podesi opcije: Uvlačenje (2 razmaka, 4 razmaka, tabulator ili Bez uvlačenja (kompaktno)) za oba smera; Korenski element i Dodaj XML deklaraciju za JSON → XML; Pretvori brojeve i logičke vrednosti za XML → JSON.
- Klikni Pretvori. Rezultat se osvežava i dok kucaš, a greške prikazuju red i kolonu na kojima je problem pronađen.
- Kopiraj ili preuzmi rezultat. Zameni smer vraća rezultat u unos da proveriš krug pretvaranja.
Kako se JSON preslikava u XML
XML i JSON nemaju isti model podataka, pa svaki pretvarač sledi neku konvenciju. Ovaj alat koristi široko rasprostranjenu konvenciju iz biblioteke fast-xml-parser:
| JSON | XML |
|---|---|
{"title": "Dune"} |
<title>Dune</title> |
{"book": {"@id": "42"}} |
<book id="42"/> |
{"p": {"@lang": "en", "#text": "Hi"}} |
<p lang="en">Hi</p> |
{"tag": ["a", "b"]} |
<tag>a</tag><tag>b</tag> |
- Ključevi koji počinju sa
@postaju atributi, a ključ#textčuva tekst elementa koji ima i atribute. - Niz postaje ponovljen element istog naziva.
- XML dokument zahteva tačno jedan korenski element. Ako je tvoj JSON objekat sa jednim ključem čija je vrednost objekat, taj ključ postaje koren. U suprotnom se cela vrednost uvija u element naveden u polju Korenski element (podrazumevano
root), a stavke niza na vrhu postaju elementi<item>. - Ključevi koji nisu ispravni XML nazivi se ispravljaju: razmaci i simboli postaju
_, a naziv koji počinje cifrom dobija_ispred ("1st place"→<_1st_place>). nulli prazni stringovi daju prazan element poput<note/>. Posebni znaci (&,<,>, navodnici) se kodiraju.
Kako se XML preslikava u JSON
- Atributi postaju ključevi sa prefiksom
@, a mešoviti tekst postaje#text. - Ponovljeni elementi postaju niz; element koji se pojavljuje jednom postaje jedna vrednost.
- CDATA odeljci se spajaju sa tekstom, a entiteti poput
&se dekodiraju. XML deklaracija, instrukcije za obradu i komentari se odbacuju. - Uz Pretvori brojeve i logičke vrednosti,
<price>12.5</price>postaje12.5, atruelogička vrednost, dok vrednosti sa početnom nulom, poput007, ostaju stringovi. Isključi opciju da svaku vrednost zadržiš kao tekst.
Pre pretvaranja XML se proverava na ispravnu oblikovanost: završna oznaka koja nedostaje, neusklađena oznaka ili nekodiran & prijavljuju se sa redom i kolonom.
Česta pitanja
Da li se moji podaci šalju na server?
Ne. Pretvaranje se u potpunosti izvršava u tvom pregledaču. Tvoji XML izvori, SOAP poruke i konfiguracioni fajlovi ostaju na tvom računaru.
Zašto element u jednom fajlu postaje niz, a u drugom objekat?
XML ne kaže da li je element lista. Kad se <tag> pojavi dvaput, postaje niz; kad se pojavi jednom, to je jedna vrednost. Ako tvoj kod očekuje niz, obradi oba slučaja ili pri testiranju dodaj drugi element.
Zašto krug pretvaranja nije uvek identičan?
Neke informacije nemaju ekvivalent na drugoj strani: komentari, redosled mešovitog sadržaja ili razlika između niza sa jednim elementom i jedne vrednosti. Za tipične dokumente sa podacima, pretvaranje JSON → XML → JSON vraća istu strukturu.
Mogu li da koristim prostore imena?
Da. Nazivi sa prefiksom poput soap:Envelope i atributi poput @xmlns:soap zadržavaju se onakvi kakvi jesu u oba smera.
Da li proverava prema XSD šemi?
Ne. Proverava da li je XML ispravno oblikovan, ali ga ne proverava prema DTD-u ili XSD šemi.
Srodni alati
- JSON formater i validator Besplatan JSON formater i validator koji sređuje, minifikuje i proverava JSON u pregledaču, sa sintaksnim greškama prijavljenim po redu i koloni.
- JSON u YAML pretvarač Pretvori JSON u YAML i YAML u JSON u pregledaču, uz podršku za sidra, ključeve spajanja i fajlove sa više dokumenata. Ništa se ne otprema.
- JSON u CSV pretvarač Pretvori JSON u CSV i CSV nazad u JSON u pregledaču. Ugnežđeni ključevi se spljoštavaju u kolone, razdvajači se prepoznaju, a ništa se ne otprema.