Utilia

JSON–XML-muunnin

Muunna JSON XML:ksi ja XML JSONiksi selaimessa. Attribuutit, toistuvat elementit ja CDATA käsitellään. Mitään ei lähetetä palvelimelle.

Muunnos

Näin käytät JSON–XML-muunninta

  1. Valitse suunta: JSON → XML tai XML → JSON.
  2. Liitä datasi tai napsauta Avaa tiedosto ladataksesi .json- tai .xml-tiedoston (enintään 10 Mt).
  3. Aseta asetukset: Sisennys (2 välilyöntiä, 4 välilyöntiä, sarkain tai Ei sisennystä (tiivis)) molemmille suunnille, Juurielementti ja Lisää XML-julistus JSON → XML -suunnalle sekä Muunna luvut ja totuusarvot XML → JSON -suunnalle.
  4. Napsauta Muunna. Tulos päivittyy myös kirjoittaessasi, ja virheet näyttävät rivin ja sarakkeen, josta ongelma löytyi.
  5. Kopioi tai lataa tulos. Vaihda suunta siirtää tuloksen takaisin syötteeksi, jotta voit tarkistaa edestakaisen muunnoksen.

Miten JSON vastaa XML:ää

XML:llä ja JSONilla ei ole samaa tietomallia, joten jokainen muunnin noudattaa jotakin käytäntöä. Tämä työkalu käyttää fast-xml-parser-kirjaston laajasti käytettyä käytäntöä:

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>
  • Avaimet, jotka alkavat merkillä @, muuttuvat attribuuteiksi, ja avain #text sisältää sellaisen elementin tekstin, jolla on myös attribuutteja.
  • Taulukko muuttuu toistuvaksi samannimiseksi elementiksi.
  • XML-dokumentissa on oltava täsmälleen yksi juurielementti. Jos JSONisi on olio, jossa on yksi avain, jonka arvo on olio, avaimesta tulee juuri. Muussa tapauksessa koko arvo kääritään kohdassa Juurielementti nimettyyn elementtiin (oletuksena root), ja ylätason taulukon alkioista tulee <item>-elementtejä.
  • Avaimet, jotka eivät ole kelvollisia XML-nimiä, korjataan: välilyönnit ja symbolit muuttuvat merkiksi _, ja numerolla alkava nimi saa alkuun _-merkin ("1st place" → <_1st_place>).
  • null ja tyhjät merkkijonot antavat tyhjän elementin, kuten <note/>. Erikoismerkit (&, <, >, lainausmerkit) koodataan.

Miten XML vastaa JSONia

  • Attribuuteista tulee avaimia, joiden etuliite on @, ja sekasisällön teksti muuttuu avaimeksi #text.
  • Toistuvista elementeistä tulee taulukko. Elementti, joka esiintyy kerran, muuttuu yksittäiseksi arvoksi.
  • CDATA-osiot yhdistetään tekstiin, ja entiteetit kuten &amp; puretaan. XML-julistus, prosessointikäskyt ja kommentit pudotetaan.
  • Muunna luvut ja totuusarvot -valinnalla <price>12.5</price> muuttuu arvoksi 12.5 ja true totuusarvoksi, kun taas arvot, joissa on etunolla, kuten 007, pysyvät merkkijonoina. Poista valinta pitääksesi jokaisen arvon tekstinä.

Ennen muuntamista XML tarkistetaan hyvinmuodostuneisuuden varalta: puuttuva päättävä tunniste, tunnisteiden epäsuhta tai koodaamaton & ilmoitetaan rivin ja sarakkeen kanssa.

Usein kysytyt kysymykset

Lähetetäänkö tietoni palvelimelle?

Ei. Muunnos tapahtuu kokonaan selaimessasi. XML-syötteesi, SOAP-viestisi ja asetustiedostosi pysyvät tietokoneellasi.

Miksi elementistä tulee yhdessä tiedostossa taulukko ja toisessa olio?

XML ei kerro, onko elementti lista. Kun <tag> esiintyy kahdesti, siitä tulee taulukko, ja kun se esiintyy kerran, siitä tulee yksittäinen arvo. Jos koodisi odottaa taulukkoa, käsittele molemmat tapaukset tai lisää testatessasi toinen elementti.

Miksi edestakainen muunnos ei aina ole identtinen?

Joillakin tiedoilla ei ole vastinetta toisella puolella: kommentit, sekasisällön järjestys tai ero yhden alkion taulukon ja yksittäisen arvon välillä. Tyypillisille dataa sisältäville dokumenteille muunnos JSON → XML → JSON palauttaa saman rakenteen.

Voinko käyttää nimiavaruuksia?

Voit. Etuliitteelliset nimet, kuten soap:Envelope, ja attribuutit, kuten @xmlns:soap, säilyvät sellaisinaan molempiin suuntiin.

Validoiko se XSD-skeemaa vasten?

Ei. Se tarkistaa, että XML on hyvinmuodostunutta, mutta ei validoi sitä DTD:tä tai XSD-skeemaa vasten.