XML sa JSON Converter
I-convert ang XML data o mga file sa JSON format kaagad sa iyong browser. Sinusuportahan ang custom na indentation at pinangangasiwaan ang mga nested na istruktura.
Piliin ang XML file
o i-drag at i-drop dito
I-convert ang XML data o mga file sa JSON format kaagad sa iyong browser. Sinusuportahan ang custom na indentation at pinangangasiwaan ang mga nested na istruktura.
o i-drag at i-drop dito
Ang XML at JSON ay parehong mga format ng pagpapalitan ng data ngunit nagmula sa iba't ibang panahon ng web. Ang XML, na na-standardize noong 1998, ay idinisenyo bilang isang self-describing markup format na may mga attribute, namespace, at schema validation. Lumitaw ang JSON noong unang bahagi ng 2000s bilang isang mas magaan na format na mas angkop sa mga runtime ng JavaScript at modernong mga API. Karamihan sa mga bagong web API ay nagsasalita ng JSON; maraming mas lumang sistema — mga serbisyo ng SOAP, mga RSS feed, mga file ng pagsasaayos, mga pagsasama ng enterprise — gumagawa pa rin ng XML. Ang pag-convert sa pagitan ng mga ito ay isa sa mga pinakakaraniwang interop na gawain sa modernong pag-unlad.
Ang conversion ay hindi perpektong lossless dahil ang dalawang format ay may magkaibang kapangyarihan sa pagpapahayag. Ang XML ay may mga katangian (na hindi native ng JSON), natutukoy ang pagkakaiba sa pagitan ng nilalaman ng teksto at mga pangalan ng elemento, at sumusuporta sa magkahalong nilalaman (mga elementong naglalaman ng parehong elemento ng teksto at bata). Ang direktang object/array na modelo ng JSON ay hindi maaaring direktang kumatawan sa mga feature na ito, kaya ang mga nagko-convert ay naglalapat ng mga kumbensyon: ang mga katangian ay nagiging @-prefixed na mga key, ang nilalaman ng text ay nagiging isang #text key, at iba pa.
Ang converter na ito ay nag-parse ng XML gamit ang built-in na DOMParser ng browser at nilalakad ang resultang DOM tree upang makagawa ng JSON. Ang mga elementong may parehong tag na pangalan bilang magkapatid ay kinokolekta sa mga array; ang mga katangian ay napupunta sa mga espesyal na susi; pinapanatili ang mga namespace at mga tagubilin sa pagproseso kapag naroroon. Ang resulta ay JSON na nababasa ng tao na makatwirang bumalik sa XML.
Karamihan sa modernong application code ay mas komportable sa JSON. Na-parse ng JavaScript ang JSON nang native, ang json module ng Python ay nasa karaniwang library, at halos lahat ng iba pang wika ay may katumbas na first-class na suporta sa JSON. Ang pagpoproseso ng XML ay nangangailangan ng pag-import ng mga karagdagang aklatan at pagsulat ng mas maraming boilerplate. Ang pag-convert ng papasok na XML sa JSON bago ang pagproseso ay kadalasang pinakamabilis na landas mula sa panlabas na XML feed patungo sa panloob na istraktura ng data.
Ang tooling ay umaasa rin sa JSON. Ang mga JSON beautifier, validator, validator ng schema, wika ng query (jq, JSONPath), at mga manonood ay marami; ang mga katumbas ng XML ay mas kaunti at madalas na mas luma. Ang pagtatrabaho sa JSON ay nagbubukas ng mas mayamang ecosystem ng mga tool.
I-paste ang XML, kumuha ng JSON.
Gumagawa ang DOMParser ng XML DOM na kapareho ng ginagamit ng browser para sa mga pahina ng XHTML. Ang converter ay naglalakad sa DOM na ito nang paulit-ulit. Para sa bawat elemento, lumilikha ito ng JSON object: ang mga attribute ay nagiging mga key na may prefix na @ (hal., @id, @class); ang mga elemento ng bata ng elemento ay inuulit sa parehong istraktura; nilalaman ng teksto, kapag naroroon sa tabi ng mga bata, nabubuhay sa ilalim ng #text key.
Ang mga paulit-ulit na child element na may parehong tag name ay kinokolekta sa isang JSON array. Ang isang solong bata ng isang ibinigay na pangalan ay lilitaw bilang isang halaga ng bagay; lumilitaw ang maraming bata bilang isang hanay ng mga bagay. Gumagana nang maayos ang convention na ito sa pagsasanay ngunit nangangahulugan na ang hugis ng JSON ay depende sa kung ang mga elemento ay lilitaw nang isang beses o maraming beses — isang kilalang di-kasakdalan ng XML-to-JSON na pagmamapa.
Pinapanatili ang mga namespace bilang bahagi ng mga pangalan ng elemento (prefix:localName). Ang mga tagubilin sa pagproseso at mga seksyon ng CDATA ay na-convert sa nilalamang teksto. Ang mga deklarasyon ng XML at DOCTYPE ay tinanggal mula sa output ng JSON ngunit hindi nakakaapekto sa data.