Libreng Converter

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

O kaya

Tungkol sa tool na ito

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.

Bakit I-convert ang XML sa JSON

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.

Paano gamitin

I-paste ang XML, kumuha ng JSON.

  1. I-paste o i-upload ang iyong XML: I-paste ang XML text sa input area o mag-drop ng file. Ang XML ay dapat na maayos na nabuo; Ang malformed XML ay gumagawa ng parse error sa halip na isang hula.
  2. Magbalik-loob: Bumubuo ang DOMParser ng DOM, pinapalakad ng converter ang bawat elemento, at binubuo ang JSON gamit ang mga attribute key (@attr) at mga text content key (#text) kung kinakailangan. Ang magkakapatid na elemento na may parehong pangalan ay nagiging mga array.
  3. Suriin ang istraktura: Siyasatin ang JSON para kumpirmahin na ang mga attribute, text, at nesting ay namamapa gaya ng inaasahan. Ang mga kumbensyong ginamit (hal., @ para sa mga katangian) ay makikita sa output.
  4. I-download o kopyahin: I-save bilang .json o kopyahin sa clipboard.

Mga Pangkaraniwang Paggamit

Mga Detalye ng Teknikal

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.

Pinakamahusay na Kasanayan

Mga madalas itanong

Binabago ba ng pag-convert ng XML sa JSON ang nilalaman?
Ang nilalaman ay pinapanatili nang tumpak hangga't maaari. Gayunpaman, maaaring walang direktang katumbas ang ilang feature na partikular sa format, kaya maaaring magkaroon ng maliliit na pagkakaiba sa pag-format.
Bakit i-convert ang data sa JSON format?
Ang JSON ay ang karaniwang format ng data para sa mga web API at JavaScript application. Ito ay nababasa ng tao, malawak na sinusuportahan ng mga programming language, at may mas simpleng syntax kaysa sa XML.
Pinangangasiwaan ba ng converter ang mga nested o kumplikadong istruktura ng XML?
Oo. Na-parse nang tama ng tool ang mga nested na bagay, array, at lahat ng karaniwang uri ng data ng XML, na pinapanatili ang buong istraktura ng data sa output ng JSON.
Secure at pribado ba ang conversion na ito?
Oo. Ang lahat ng pagproseso ay nangyayari nang lokal sa iyong browser. Ang iyong data ay hindi kailanman umaalis sa iyong device — walang pag-upload ng server, walang pagpoproseso ng ulap, walang pangongolekta ng data.
Pinangangasiwaan ba ang mga seksyon ng CDATA?
Oo. Ang nilalaman ng CDATA ay na-convert sa plain text sa JSON output. Ang CDATA wrapping mismo ay hindi napanatili, ngunit ang nilalaman ay.
Na-upload ba ang aking data sa isang server?
Hindi. Ang DOMParser ay tumatakbo sa iyong browser; ang conversion ay ganap na nangyayari sa iyong device.
Babalik ba ang JSON round-trip sa XML?
Oo kung gagamitin mo ang inverse convention (ang JSON to XML tool ay sumusunod sa parehong @attr at #text na mga panuntunan). Ang round trip ay nagpapanatili ng istraktura para sa tipikal na XML; ilang edge case (mixed-content order, processing instructions) ay maaaring hindi ganap na mabuhay.
Ano ang maximum na laki ng input?
Hanggang 50 MB. Ang DOMParser ay memory-bounded ng iyong browser; ang napakalaking XML file ay maaaring bumagal o hindi ma-parse.