Sări la conținut
TextArray
Complet local

Convertor XML în JSON

Convertiți XML în JSON echivalent, cu atribute prefixate și etichete repetate ca matrice.

Intrare
Ieșire

Convertor XML în JSON

XML și JSON descriu ambele date structurate, dar instrumentele din jurul tău rareori vorbesc ambele. Un vechi API SOAP, un flux RSS, un aspect Android, un fișier de configurare sau un export de date vă oferă XML; scriptul dvs., baza de date sau frontend-ul dvs. vrea JSON. Acest instrument face conversie între ele cu un parser real - nu un hack de expresii regulate - care gestionează corect părțile incomode ale XML: elemente imbricate, atribute, conținut mixt, etichete cu auto-închidere, comentarii, secțiuni CDATA, declarația XML și DOCTYPE.

Maparea urmează convenția larg utilizată. Atributele unui element devin chei prefixate cu @ (configurabil), deci <user id="7"> dă „@id”: „7”. Elementele copil se cuibăresc ca obiecte; atunci când o etichetă se repetă - trei elemente <item> la rând - acestea se prăbușesc într-o singură matrice, care este exact ceea ce doriți pentru liste. Un element care are doar text devine un șir simplu; unul care are atât text, cât și atribute își păstrează textul sub o cheie #text. Entitățile precum & și referințele numerice precum A sunt decodificate, iar conținutul CDATA este luat literal.

Deoarece este un parser recursiv autentic, validează pe măsură ce citește: o etichetă de închidere nepotrivită, un comentariu neterminat sau conținut rătăcit după rădăcină produce o eroare clară cu numărul liniei, mai degrabă decât să distrugă în tăcere rezultatul. Alegeți o indentație cu două sau patru spații pentru un rezultat lizibil sau reduceți la o singură linie pentru încorporare.

Totul rulează local în browserul dvs. - datele dvs. nu părăsesc niciodată dispozitivul dvs., ceea ce contează pentru exporturile XML care poartă adesea înregistrări și identificatori.

FAQ

Cum sunt reprezentate atributele XML în JSON?
Ca taste prefixate cu @ în mod implicit (puteți schimba prefixul). Deci <book lang="en"> devine { "book": { "@lang": "en" } }. Aceasta este convenția folosită de biblioteci precum xml-js și badgerfish, astfel încât rezultatul scade în majoritatea lanțurilor de instrumente.
Ce se întâmplă cu etichetele repetate?
Ele devin o matrice. Trei copii <item> se prăbușesc la „articol”: [ … ], care este ceea ce are nevoie o listă. O etichetă care apare o dată rămâne o singură valoare - rețineți că înseamnă un document cu un articol și altul cu mai multe hărți cu diferite forme, care este inerent XML→JSON.
Se ocupă de conținut mixt și CDATA?
Da. Un element cu atât text, cât și copii (sau atribute) își păstrează textul sub o cheie #text. Secțiunile CDATA sunt luate literal, astfel încât marcajul lor <raw> și caracterele & supraviețuiesc fără a fi analizate. Comentariile și instrucțiunile de procesare sunt omise.
De ce a raportat o eroare în loc să facă conversie?
Este un parser de validare: o etichetă de închidere nepotrivită, un atribut fără ghilimele, un comentariu neterminat sau conținut după elementul rădăcină, toate opresc conversia printr-un mesaj numerotat pe rând. Acest lucru este deliberat - o conversie greșită, dar liniștită este mai rea decât o eroare clară.
XML-ul meu este încărcat de undeva?
Nu. Analiza și conversia rulează în întregime în browserul dvs., iar datele dvs. nu părăsesc dispozitivul.