Utilia

JSON-i ja XML-i teisendaja

Teisenda JSON XML-iks ja XML JSON-iks oma brauseris, atribuutide, korduvate elementide ja CDATA toega. Midagi ei laadita serverisse.

Teisendus

Kuidas JSON-i ja XML-i teisendajat kasutada

  1. Vali suund: JSON → XML või XML → JSON.
  2. Kleebi andmed või klõpsa nuppu Ava fail, et laadida .json- või .xml-fail (kuni 10 MB).
  3. Sea valikud: Taane (2 tühikut, 4 tühikut, tabulaator või Puudub (kompaktne)) mõlema suuna jaoks; Juurelement ja Lisa XML-deklaratsioon JSON → XML jaoks; Teisenda arvud ja tõeväärtused XML → JSON jaoks.
  4. Klõpsa Teisenda. Tulemus uueneb ka kirjutamise ajal ning vead näitavad rida ja veergu, kust probleem leiti.
  5. Kopeeri tulemus või laadi see alla. Vaheta suund paneb väljundi tagasi sisendisse, et saaksid edasi-tagasi teisendust kontrollida.

Kuidas JSON XML-iks teisendub

XML-il ja JSON-il ei ole sama andmemudel, seega järgib iga teisendaja mingit kokkulepet. See tööriist kasutab teegi fast-xml-parser laialt kasutatavat kokkulepet:

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>
  • Võtmed, mis algavad märgiga @, muutuvad atribuutideks ning võti #text hoiab elemendi teksti, millel on ka atribuute.
  • Massiiv muutub sama nimega korduvaks elemendiks.
  • XML-dokument vajab täpselt ühte juurelementi. Kui sinu JSON on objekt ühe võtmega, mille väärtus on objekt, muutub see võti juureks. Muidu mähitakse kogu väärtus väljal Juurelement nimetatud elementi (vaikimisi root) ja ülemise taseme massiivi elemendid muutuvad <item> elementideks.
  • Võtmed, mis ei ole korrektsed XML-i nimed, parandatakse: tühikud ja sümbolid muutuvad märgiks _ ning numbriga algav nimi saab ette _ ("1st place" → <_1st_place>).
  • null ja tühjad stringid annavad tühja elemendi, näiteks <note/>. Erimärgid (&, <, >, jutumärgid) escape’itakse.

Kuidas XML JSON-iks teisendub

  • Atribuutidest saavad võtmed eesliitega @ ja segatekst muutub võtmeks #text.
  • Korduvatest elementidest saab massiiv; element, mis esineb üks kord, muutub üksikuks väärtuseks.
  • CDATA-sektsioonid liidetakse teksti hulka ja olemid nagu &amp; dekodeeritakse. XML-deklaratsioon, töötlusjuhised ja kommentaarid jäetakse ära.
  • Valikuga Teisenda arvud ja tõeväärtused muutub <price>12.5</price> väärtuseks 12.5 ja true tõeväärtuseks, samal ajal kui eesnulliga väärtused, näiteks 007, jäävad stringideks. Lülita valik välja, et hoida iga väärtus tekstina.

Enne teisendamist kontrollitakse XML-i korrektsust: puuduv sulgemissilt, mittesobiv silt või escape’imata & teatatakse koos rea ja veeruga.

Korduma kippuvad küsimused

Kas minu andmed saadetakse serverisse?

Ei. Teisendus toimub täielikult sinu brauseris. Sinu XML-voogud, SOAP-sõnumid ja seadistusfailid jäävad sinu arvutisse.

Miks muutub element ühes failis massiiviks ja teises objektiks?

XML ei ütle, kas element on loend. Kui <tag> esineb kaks korda, muutub see massiiviks; kui üks kord, on see üksik väärtus. Kui sinu kood ootab massiivi, käsitle mõlemat juhtu või lisa testimisel teine element.

Miks ei ole edasi-tagasi teisendus alati identne?

Mõnel teabel puudub vaste teisel poolel: kommentaarid, segasisu järjekord või erinevus ühe elemendiga massiivi ja üksiku väärtuse vahel. Tüüpiliste andmedokumentide puhul annab JSON → XML → JSON teisendus sama struktuuri tagasi.

Kas ma saan kasutada nimeruume?

Jah. Prefiksiga nimed nagu soap:Envelope ja atribuudid nagu @xmlns:soap säilivad mõlemas suunas samal kujul.

Kas see valideerib XSD skeemi vastu?

Ei. See kontrollib, et XML on korrektselt vormindatud, kuid ei valideeri seda DTD või XSD skeemi vastu.