XML a JSON
Eina gratuïta en línia per convertir XML a JSON, basada en el DOMParser nadiu del navegador per analitzar XML i transformar-lo automàticament en objectes JSON estàndard. Els atributs XML es mapegen directament com a camps, els elements repetits es fusionen automàticament en arrays i el text dels elements s'emmagatzema al camp value; també admet sortida dual en JSON i YAML, formatació prettyPrint i autoreparació d'errors XML, amb processament totalment local al navegador.
Relacionats
Sobre XML a JSON: conversió automàtica de dades XML en objectes JSON estàndard
XML a JSON és el procés de convertir dades en format XML (eXtensible Markup Language), com ara missatges SOAP, subscripcions RSS i fitxers de configuració, en objectes JSON (JavaScript Object Notation). XML és el format de dades tradicional per a sistemes empresarials, SOAP Web Service, fitxers de configuració i documents d'Office, mentre que JSON és l'estàndard de facto per a les Web API modernes, JavaScript i les bases de dades NoSQL. Tots dos formats tenen els seus avantatges: XML és estrictament autodescriptiu i admet àmpliament espais de noms i validació schema; JSON és concís, fàcil d'analitzar i s'adapta de forma natural a JavaScript. En el desenvolupament sovint cal convertir missatges XML a JSON per utilitzar-los en frontends moderns o microserveis, i aquesta eina està dissenyada per automatitzar aquest procés.
El nucli d'aquesta eina és utilitzar el DOMParser nadiu del navegador per analitzar XML i recórrer automàticament l'arbre DOM per generar objectes JSON. DOMParser és l'analitzador XML integrat al navegador, segueix l'estàndard W3C DOM i admet totes les característiques d'XML 1.0, com ara espais de noms XML, CDATA, comentaris i atributs. L'avantatge de l'anàlisi basada en DOM és que té zero dependències, bon rendiment i compleix amb els estàndards.
Les regles de mapeig de conversió són molt intuïtives: cada element XML es converteix en un objecte JSON, els atributs de l'element es converteixen directament en camps de l'objecte (sense utilitzar el prefix @, per evitar les convencions de noms confuses habituals); el contingut de text de l'element s'emmagatzema al camp value; els elements amb el mateix nom repetits es fusionen automàticament en arrays. Per exemple, <bookstore><book id="1"><title>Great Gatsby</title></book><book id="2"><title>Brief History</title></book></bookstore> es converteix en {bookstore: {book: [{id: "1", title: {value: "Great Gatsby"}}, {id: "2", title: {value: "Brief History"}}]}}.
El mapeig directe d'atributs sense prefix és una decisió de disseny clau d'aquesta eina. Moltes eines de conversió XML utilitzen prefixos especials com @attribute i #text per distingir atributs i text, que tot i ser precisos generen estructures JSON estranyes difícils d'utilitzar directament en JavaScript. El mapeig directe d'atributs d'aquesta eina fa que el JSON generat s'assembli més a models de dades reals de negoci, i els desenvolupadors poden definir directament els tipus corresponents en interfícies TypeScript.
L'arrayització d'elements repetits és un altre disseny clau de la conversió XML a JSON. XML no té un concepte nadiu d'array i cal utilitzar elements repetits (com ara múltiples <item>) per representar dades de llista. Aquesta eina detecta automàticament les etiquetes amb el mateix nom repetides sota el mateix element pare i les fusiona en un array, d'acord amb la semàntica de llistes de JSON i evitant la pèrdua de dades o la necessitat de fusió manual.
La sortida de doble format (JSON + YAML) és un disseny diferenciador d'aquesta eina. YAML és un altre format popular de serialització de dades, àmpliament utilitzat en escenaris de configuració com Kubernetes, Docker Compose, Ansible i GitHub Actions. L'eina incorpora un convertidor YAML senzill que admet la sagnia estàndard de 2 espais, el prefix de llista - i el separador de clau-valor :. Fes clic al botó de commutació JSON/YAML per canviar entre els dos formats en temps real.
L'autoreparació d'errors XML (tryFixXML) millora la tolerància a errors de l'eina. A la pràctica, l'XML que introdueixen els usuaris sovint no té la declaració XML (<?xml version="1.0"?>) o utilitza etiquetes autotancades (com <br>, <img>) a l'estil HTML <br> en lloc de l'estil XML <br />. L'eina afegeix automàticament la declaració XML i completa la barra / de les etiquetes autotancades, de manera que més XML amb format no estàndard pot ser analitzat correctament per DOMParser.
El formateig i la compressió XML (formatXML/compressXML) es basen en la biblioteca xml-formatter. El mode prettyPrint genera XML llegible amb sagnia de 2 espais i salts de línia conservats; el mode de compressió genera XML compacte d'una sola línia sense espais en blanc, adequat per a la transmissió per xarxa. Els desenvolupadors poden utilitzar directament l'eina per comprimir XML abans d'emmagatzemar-lo a la base de dades, estalviant entre un 30 % i un 50 % d'espai d'emmagatzematge.
La conversió automàtica en temps real és una funció pràctica de l'eina. Després d'introduir XML, la conversió s'activa automàticament amb un debounce de 500 ms i, juntament amb 6 dreceres de teclat (macOS ⇧⌘+F/C/T/O/D/K), els usuaris poden completar ràpidament operacions habituals com formatar, comprimir, convertir, pujar, descarregar i netejar, sense necessitat de clics amb el ratolí.
El processament totalment local al navegador és l'arquitectura principal d'aquesta eina. Totes les operacions d'anàlisi XML, recorregut DOM, serialització JSON i conversió YAML s'executen al JavaScript del navegador; DOMParser és proporcionat de forma nadiua pel navegador (sense necessitat d'incloure una biblioteca d'anàlisi XML) i xml-formatter és un paquet npm lleuger (de menys de 30 KB). Les dades XML originals no es pujen a cap servidor, i els missatges SOAP sensibles (que contenen informació de comandes o dades d'usuaris) es poden processar de forma segura en local.
Casos d'ús
- Quan et connectes a APIs empresarials heretades com passarel·les de pagament, ERP o CRM que només retornen respostes XML, converteix ràpidament els missatges XML a JSON per utilitzar-los en frontends moderns o backends Node.js.
- Analitza fonts de subscripció RSS/Atom i converteix-les a JSON per mostrar-les fàcilment en un frontend web, agregar-les a un lector de feeds unificat o importar-les a una base de dades.
- Llegeix fitxers de configuració XML d'aplicacions Java com Spring, Tomcat o Apache (web.xml, applicationContext.xml), converteix-los a JSON i després utilitza jq per consultar-los o importar-los a altres eines.
- Converteix respostes XML del protocol SOAP 1.1/1.2 a JSON i utilitza biblioteques de Node.js com jsonwebtoken i lodash per al processament posterior.
- Analitza scripts de construcció com el pom.xml de Maven o el build.xml d'Ant i converteix-los a JSON per utilitzar-los en visualització de metadades de projectes o anàlisi de dependències.
- Converteix fonts RSS, Sitemap XML i subscripcions Atom a format JSON per emmagatzemar-les en bases de dades modernes com Elasticsearch o MongoDB.
- Quan treballes amb formats de dades estàndard del sector basats en XML com HL7 o ISO 20022 en les indústries mèdica i financera, converteix els missatges XML a JSON per processar-los amb microserveis moderns.
- Converteix fitxers XML relacionats amb SEO de Google Merchant Center o Sitemap.org (sitemap.xml, robots.xml) a JSON per utilitzar-los amb rastrejadors o eines d'anàlisi.
Com usar-ho
- Enganxa el contingut XML al camp d'entrada esquerre, o fes clic al botó «Puja» per seleccionar un fitxer .xml/.txt, o fes clic a «Exemple» per carregar l'exemple bookstore integrat.
- L'eina convertirà automàticament (amb debounce de 500 ms després de l'entrada); visualitza el JSON o YAML convertit a la dreta, amb ressaltat de sintaxi CodeMirror per facilitar la lectura.
- Fes clic als botons JSON/YAML de la barra d'eines dreta per commutar el format de sortida en temps real. També pots utilitzar els botons «Formata» (⇧⌘+F) o «Comprimeix» (⇧⌘+C) per ajustar el format de l'entrada XML.
- Fes clic a «Copia» per copiar el JSON/YAML al porta-retalls, o fes clic a «Descarrega» per desar-lo com a fitxer amb l'extensió corresponent (output.json / output.yaml / output.xml).
- Si cal reparar errors de sintaxi XML, fes clic al botó «Repara» al costat de l'avís d'error (o al menú desplegable al costat d'«Exemple» a la barra d'eines); l'eina invocarà tryFixXML per afegir automàticament la declaració XML i completar les etiquetes autotancades.
- Enganxa el JSON al codi de destinació (per exemple, definicions d'interfície TypeScript, tipus de resposta d'API, etc.) o importa'l al servei backend per a un processament posterior.
Característiques
- Anàlisi intel·ligent de l'arbre DOM: basada en el DOMParser nadiu del navegador per analitzar XML, recorrent automàticament l'arbre de nodes per generar objectes JSON estàndard, amb zero dependències.
- Mapeig directe d'atributs: els atributs XML (com ara id="1", category="fiction") es converteixen directament en camps normals de l'objecte JSON, sense necessitat del prefix @.
- Arrayització d'elements repetits: els elements XML amb el mateix nom repetits es fusionen automàticament en arrays JSON ({book: [{...}, {...}]}), d'acord amb les convencions habituals d'estructures de dades.
- Extracció de nodes de text: el contingut de text dels elements s'emmagatzema automàticament al camp value, conservat paral·lelament amb els atributs i els elements fills.
- Sortida de doble format: commuta amb un sol clic entre JSON (sagnia de 2 espais amb prettyPrint) i YAML (sagnia de 2 espais, prefix de llista -) per adaptar-se a diferents escenaris d'ús.
- Autoreparació d'errors XML: la funció integrada tryFixXML afegeix automàticament la declaració XML que falta i completa les etiquetes autotancades com br, hr i img.
- Formateig i compressió XML: utilitza la biblioteca xml-formatter per a la sortida embellida amb prettyPrint i la sortida comprimida amb minify (sagnia de 2 espais o sense espais en blanc).
- Conversió automàtica en temps real: conversió automàtica amb debounce de 500 ms després d'introduir XML, sense clics manuals, amb la sortida actualitzada de forma sincronitzada en temps real.
- Ressaltat dual JSON/XML: ressaltat de sintaxi XML amb CodeMirror a l'esquerra i commutació automàtica entre ressaltat JSON o YAML a la dreta segons el format.
- Sistema complet de dreceres: 6 dreceres habituals (formatar/comprimir/convertir/pujar/descarregar/netejar), compatibles amb macOS i Windows/Linux.
- Còpia i descàrrega: còpia al porta-retalls amb un sol clic, o descàrrega com a fitxer estàndard output.json/output.yaml/output.xml (l'extensió se selecciona automàticament segons el format actual).
- Processament totalment local al navegador: totes les operacions d'anàlisi XML, recorregut DOM, serialització JSON es realitzen al JavaScript del navegador, les dades originals no es pugen i DOMParser és proporcionat de forma nadiua pel navegador.
Preguntes freqients
Com puc convertir XML a format JSON?
Enganxa el contingut XML al panell d'entrada esquerre i l'eina utilitzarà el DOMParser nadiu del navegador per analitzar l'XML i convertir automàticament l'arbre DOM en un objecte JSON estàndard. El node arrel s'embolcalla amb { [tagName]: {...} }, els atributs es mapegen com a camps normals (sense prefix @), el text dels elements s'emmagatzema al camp value i els elements amb el mateix nom repetits es fusionen automàticament en arrays. La conversió s'executa automàticament després de 500 ms, sense necessitat de clicar cap botó.
Com es converteixen els atributs i els nodes de text de l'XML?
Aquesta eina utilitza un model de mapeig intuïtiu: els atributs XML es mapegen directament com a camps normals de l'objecte JSON (per exemple, <book id="1"> es converteix en {id: "1", ...}), sense utilitzar el prefix @; el contingut de text dels elements s'emmagatzema al camp value (per exemple, <title>Great Gatsby</title> es converteix en {value: "Great Gatsby"}). Quan coexisteixen atributs i text, tots dos apareixen paral·lelament al mateix objecte.
Els elements amb el mateix nom repetits a l'XML es converteixen automàticament en un array JSON?
Sí. L'eina detecta automàticament múltiples etiquetes repetides sota el mateix element pare (per exemple, 3 elements <book> dins de <bookstore>) i les fusiona en un array JSON. Per exemple, <bookstore><book>...</book><book>...</book></bookstore> esdevé {bookstore: {book: [{...}, {...}]}}. Aquesta convenció s'ajusta a les estructures de dades més habituals en el processament XML.
Com es tracten els nodes de text pur?
Quan un element XML no té atributs i només té contingut de text, l'eina retorna directament la cadena de text (per exemple, <name>Alice</name> es converteix en "Alice"). Quan l'element té tant atributs com text, els atributs i el text apareixen paral·lelament al mateix objecte ({attr: "...", value: "..."}). Quan l'element té elements fills, aquests esdevenen camps de l'objecte i el contingut de text es fusiona com a camp value.
Es pot convertir XML amb format incorrecte (per exemple, etiquetes sense tancar)?
Sí. L'eina incorpora la funció de reparació tryFixXML, que afegeix automàticament la declaració XML que falta (<?xml version="1.0" encoding="UTF-8"?>) i completa automàticament la barra / de les etiquetes autotancades habituals com br, hr i img. Aquest disseny millora significativament la compatibilitat amb sistemes antics i interfícies de tercers amb format no estàndard.
Quins tipus de fitxers XML s'admeten?
S'admeten fitxers .xml i .txt (codificació UTF-8). Fes clic al botó «Puja» per seleccionar un fitxer local; l'eina el llegeix mitjançant l'API FileReader nadiua del navegador i no el puja a cap servidor. Després de carregar-lo correctament, el contingut s'omple automàticament al camp d'entrada i s'activa la conversió automàtica.
Es pot obtenir sortida en JSON i YAML alhora?
Sí. L'eina admet sortida en format dual JSON i YAML. Fes clic al botó de commutació JSON/YAML de la barra d'eines dreta per canviar el format de sortida en temps real. El format JSON utilitza prettyPrint amb sagnia de 2 espais; el format YAML utilitza sagnia estàndard de 2 espais, prefix de llista - i separador de clau-valor :, i es pot utilitzar directament en escenaris de configuració com Kubernetes, Docker Compose i Ansible.
Quin és el nom del fitxer descarregat?
L'extensió es selecciona automàticament segons el format de sortida actual: quan es selecciona el format JSON es descarrega output.json, quan se selecciona YAML es descarrega output.yaml i quan hi ha entrada però no s'ha convertit es descarrega output.xml (es manté el format original). Tots els fitxers estan codificats en UTF-8 i poden ser llegits directament pels analitzadors del format corresponent.
Quines dreceres de teclat hi ha disponibles?
L'eina admet les dreceres següents: per a usuaris de macOS, ⇧⌘+F per formatar, ⇧⌘+C per comprimir, ⇧⌘+T per convertir, ⇧⌘+O per pujar, ⇧⌘+D per descarregar i ⇧⌘+K per netejar; per a usuaris de Windows/Linux, utilitza Ctrl en lloc de ⌘. Hi ha 6 dreceres en total que cobreixen el flux de treball complet.
S'admeten els espais de noms XML (namespace)?
Aquesta eina es basa en DOMParser per analitzar XML i admet de forma nadiua els espais de noms XML (xmlns). El prefix de l'espai de noms es conserva com a part del nom de l'element al JSON; per exemple, <svg:circle> esdevé {"svg:circle": {...}}. Si vols accedir a elements de diversos espais de noms, cal identificar-los mitjançant el prefix de l'espai de noms a la part d'anàlisi del JSON.
S'admeten les seccions CDATA?
Sí. El contingut de les seccions CDATA (<![CDATA[...]]>) és fusionat automàticament per DOMParser al textContent de l'element, i l'eina l'extreu al camp value del JSON com si fos un node de text normal. Tanmateix, com que CDATA és un tipus de node XML i no una cadena, el CDATA original i el text normal no es poden distingir a la sortida JSON.
Quina mida de fitxer d'entrada s'admet?
En teoria no hi ha un límit estricte; està limitat per la memòria del navegador. En general, els fitxers XML de fins a 1-2 MB es processen sense problemes; els fitxers més grans poden alentir-se a causa del consum de memòria de DOMParser. Si experimentes retards en processar missatges SOAP grans o feeds RSS, et recomanem simplificar o dividir el fitxer primer en un editor XML local.
Solució de problemes
L'anàlisi JSON reporta un error 'unclosed token'?
La causa sol ser que l'XML té etiquetes sense tancar, cometes d'atributs no aparellades o caràcters especials sense escapament. Fes clic al botó «Repara» al costat de l'avís d'error per invocar tryFixXML i afegir automàticament la declaració XML i completar les etiquetes autotancades. Si encara no es pot analitzar, revisa manualment l'estructura XML o utilitza document.documentElement.outerHTML a les eines de desenvolupador del navegador per veure el resultat de l'anàlisi.
L'ordre dels atributs al JSON no coincideix amb el de l'XML?
L'estàndard JSON no garanteix l'ordre dels atributs; l'eina mapeja els atributs segons l'ordre del codi font de l'element. Si el negoci és sensible a l'ordre, et recomanem utilitzar toPairs de Lodash o una eina similar al JSON analitzat per reconstruir un array ordenat. Tanmateix, la gran majoria de motors JavaScript (V8, SpiderMonkey) conserven les claus de cadena segons l'ordre d'inserció.
Quan només hi ha un element amb el mateix nom no es converteix en array, com ho puc tractar?
Actualment l'eina només converteix en array quan detecta elements amb el mateix nom repetits; si només hi ha un element amb el mateix nom, el conserva com a objecte individual. Si necessites forçar l'array (fins i tot amb només 1 element), pots convertir primer i després utilitzar castArray de lodash per embolcallar-lo: [result].flat() o utilitzar la validació JSON Schema per forçar l'array.
Com es conserven els caràcters especials dels atributs XML (com ara <, &)?
DOMParser desescapa automàticament els valors dels atributs i l'eina conserva el contingut desescapat. Si a l'XML original hi ha escrit <, després de la conversió el valor al JSON és <. Aquest és el comportament estàndard d'XML i coincideix amb les expectatives dels usuaris. Si cal conservar la forma escapada original, pots utilitzar la biblioteca xml-formatter o un tokenizer XML propi en lloc de DOMParser.
Per què la sortida YAML no té informació de tipus?
El format YAML en si admet tipus (per exemple, 12 és un nombre, true és un booleà i null és nul), però el convertidor YAML senzill d'aquesta eina serialitza tots els valors com a cadenes. Si necessites conservar els tipus, pots utilitzar una biblioteca YAML madura com js-yaml o forçar els tipus després de validar amb JSON Schema a la part d'anàlisi.
Com es tracten les entrades que contenen instruccions de processament XML (PI)?
Per defecte, DOMParser conserva les instruccions de processament XML (com ara <?xml-stylesheet ...?>) com a nodes ProcessingInstruction a document.firstChild. Actualment aquesta eina només recorre els nodes Element i les instruccions de processament s'ignoren. Si cal conservar-les, pots extreure manualment document.firstChild.nodeValue abans d'utilitzar l'eina.
Amb quin programa obro el fitxer .json descarregat?
El fitxer descarregat output.json és un fitxer JSON estàndard codificat en UTF-8 que es pot obrir amb qualsevol editor de text (VS Code, Sublime, Notepad++) o amb eines JSON professionals (jq, JSDoc). També es pot arrossegar directament al navegador per veure'n l'estructura formatada. Pràcticament tots els llenguatges de programació com JavaScript, Python, Node.js, Java i Go tenen analitzadors JSON integrats.
Glossari
- XML (eXtensible Markup Language)
- Llenguatge de marcat extensible, establert pel W3C el 1998. Utilitza etiquetes amb claudàtors angulars per descriure l'estructura i el contingut de les dades, i admet espais de noms, validació Schema i transformacions XSLT. És el format estàndard de SOAP Web Service, Office Open XML, RSS i Atom.
- JSON (JavaScript Object Notation)
- Format lleuger d'intercanvi de dades basat en la sintaxi d'objectes de JavaScript però independent del llenguatge de programació. Admet sis tipus bàsics: objecte ({}), array ([]), cadena, nombre, booleà i null. És l'estàndard de facto per a les Web API modernes, les bases de dades NoSQL i l'ecosistema JavaScript.
- DOMParser
- API nadiua del navegador (estàndard W3C DOM) que analitza cadenes XML o HTML i les converteix en un arbre DOM. Tots els navegadors moderns (Chrome, Firefox, Safari, Edge) en tenen suport integrat, sense necessitat de biblioteques de tercers. Basant-se en l'arbre DOM es poden recórrer, consultar i modificar continguts XML de forma còmoda.
- xml-formatter
- Biblioteca JavaScript lleugera (de menys de 30 KB) utilitzada per formatar (prettyPrint) i comprimir (minify) documents XML. Admet opcions personalitzables com ara la sagnia, els salts de línia i collapseContent. Aquesta eina la utilitza per proporcionar funcionalitats de formateig i compressió XML.
- Mapeig d'atributs (attribute mapping)
- La forma de mapejar els atributs d'elements XML en camps d'objectes JSON. Aquesta eina utilitza el mode de mapeig directe: <book id="1"> es converteix en {id: "1"}, sense utilitzar el prefix @. Genera estructures JSON més netes i simplifica les definicions d'interfícies TypeScript.
- Arrayització d'elements repetits
- Els elements XML amb el mateix nom repetits (com ara múltiples <item>) es fusionen automàticament en un array JSON. És una decisió de disseny clau en la conversió XML a JSON, d'acord amb la semàntica de llistes de JSON i evitant la pèrdua de dades.
- Camp value
- El nom de camp que aquesta eina utilitza per convenció per al contingut de text dels elements XML. L'element <title>Great Gatsby</title> es converteix en {value: "Great Gatsby"}. Si un element té tant atributs com text, els atributs i value apareixen paral·lelament al mateix objecte.
- YAML (YAML Ain't Markup Language)
- Format de serialització de dades amigable per als humans, àmpliament utilitzat en fitxers de configuració com Kubernetes, Docker Compose, Ansible i GitHub Actions. Aquesta eina admet sortida YAML senzilla amb sagnia de 2 espais, prefix de llista - i separador de clau-valor :.
- SOAP (Simple Object Access Protocol)
- Protocol de comunicació de serveis web basat en XML. Els missatges SOAP estan embolcallats per un sobre SOAP (amb espai de noms XML) que conté una capçalera i un cos (payload XML). Aquesta eina pot analitzar missatges SOAP i convertir-los a JSON per utilitzar-los en serveis JavaScript moderns.
- RSS / Atom feed
- Formats de subscripció de contingut basats en XML. El format RSS 2.0 organitza el contingut amb l'estructura <rss><channel><item>, i Atom utilitza l'estructura <feed><entry>. Aquesta eina converteix RSS/Atom en arrays JSON per facilitar-ne la visualització en frontend o l'agregació a bases de dades.
- Espai de noms XML (namespace)
- Mecanisme que utilitza l'atribut xmlns per evitar conflictes de noms d'elements, amb el format xmlns:prefix="uri". DOMParser admet de forma nadiua els espais de noms, i el prefix de l'espai de noms es conserva com a part del nom de l'element al JSON.
- Secció CDATA
- Sintaxi especial d'XML <![CDATA[...]]> que permet incrustar text amb caràcters especials (com ara <, >, &) dins d'un element sense necessitat d'escapament. DOMParser fusiona el contingut de CDATA amb el textContent de l'element, i l'eina el tracta com a text normal.
- tryFixXML
- Funció de reparació XML integrada en aquesta eina que afegeix automàticament la declaració XML que falta (<?xml version="1.0" encoding="UTF-8"?>) i completa la barra / de les etiquetes autotancades habituals com br, hr i img. Processa dades brutes de sistemes antics o interfícies de tercers amb format no estàndard.
- prettyPrint
- Mode de sortida de la biblioteca xml-formatter. Quan s'activa, l'XML generat rep automàticament sagnia i salts de línia (per exemple, sagnia de 2 espais), amb alta llegibilitat; quan es desactiva, la sortida és compacta sense espais en blanc (minify).
Regles de mapeig d'elements XML a camps JSON
Regles de mapeig de conversió basades en l'anàlisi amb DOMParser que utilitza aquesta eina:
| Estructura XML | Exemple XML | Sortida JSON | Regla de mapeig |
|---|---|---|---|
element with attrs | <book id="1" category="fiction"/> | {"id": "1", "category": "fiction"} | Els atributs es mapegen directament com a camps de l'objecte (sense prefix @) |
element with text | <title>Great Gatsby</title> | {"value": "Great Gatsby"} | El contingut de text de l'element s'emmagatzema al camp value |
attrs + text | <price currency="USD">12.99</price> | {"currency": "USD", "value": "12.99"} | Els atributs i el text apareixen paral·lelament al mateix objecte |
no attrs, no text | <book id="1"/> | {"id": "1"} | Només hi ha atributs, sense camp value |
nested elements | <book><title>Gatsby</title></book> | {"title": {"value": "Gatsby"}} | Els elements fills es converteixen en camps de l'objecte |
repeated elements | <books><book/><book/></books> | {"book": [{}, {}]} | Els elements amb el mateix nom repetits es fusionen automàticament en un array |
root element | <bookstore>...</bookstore> | {"bookstore": {...}} | El node arrel s'embolcalla amb { [tagName]: ... } |
namespace prefix | <svg:circle/> | {"svg:circle": {...}} | DOMParser admet de forma nadiua els espais de noms |
Comparació entre els formats de sortida JSON i YAML
Característiques i escenaris d'ús dels dos formats de sortida que admet aquesta eina:
| Dimensió | JSON | YAML | Nota |
|---|---|---|---|
| Sintaxi | { } : [ ] concís | sagnia + - llista | JSON és més concís, YAML és més llegible |
| Tipus de dades | nadiu number/bool/null | nadiu number/bool/null | Tots dos conserven els tipus |
| Sagnia | sagnia de 2 espais | sagnia de 2 espais | Aquesta eina utilitza uniformement 2 espais |
| Arrays | [1, 2, 3] | - 1\n- 2\n- 3 | JSON utilitza claudàtors, YAML utilitza guions |
| Comentaris | no admès (estàndard) | # comentari | YAML admet comentaris |
| Llegibilitat | mitjana (soroll de claudàtors) | alta (proper a llenguatge natural) | YAML té millor llegibilitat |
| Casos d'ús | REST API, frontend-backend | K8s, Docker, CI/CD | JSON per al web, YAML per a configuracions |
Comparació entre els formats XML i JSON
Comparació dels dos formats de dades en diferents dimensions, per ajudar a entendre quan triar XML o JSON:
| Dimensió | XML | JSON | Nota |
|---|---|---|---|
| Sintaxi | < > </> verbós | { } : [ ] concís | La sintaxi JSON és més concisa; les etiquetes XML són més verboses però amb alta llegibilitat |
| Tipus de dades | tot és text | nadiu number/bool/null | JSON conserva els tipus; XML necessita validació schema per als tipus |
| Arrays | elements repetits <i>1</i><i>2</i> | nadiu [1,2,3] | Els arrays JSON són concisos; els arrays XML depenen de convencions de noms |
| Comentaris | <!-- comentari --> | no admès (estàndard) | XML admet comentaris; l'estàndard JSON no |
| Espais de noms | admet xmlns | no n'hi ha | XML evita conflictes de noms en documents grans |
| Validació Schema | XSD / DTD | JSON Schema | Tots dos formats tenen mecanismes madurs de validació schema |
| Rendiment d'anàlisi | més lent (càrrega d'etiquetes) | més ràpid (~3-5x) | L'anàlisi JSON és més senzilla; l'anàlisi XML és més complexa |
| Casos d'ús | SOAP, empresa, Office | REST API, frontend-backend | El web modern utilitza JSON; l'empresa tradicional utilitza XML |
Privacy & Security
Totes les operacions d'aquesta eina XML a JSON s'executen completament de forma local al teu navegador: l'anàlisi XML (basada en el DOMParser nadiu del navegador), el recorregut de l'arbre DOM, la serialització JSON i la conversió YAML s'executen totes al JavaScript del navegador, i xml-formatter és l'única dependència externa (un paquet npm de menys de 30 KB). Les dades XML originals no es pujen a cap servidor. La càrrega de fitxers utilitza l'API FileReader nadiua del navegador per llegir directament a la memòria, sense passar per cap servei intermedi. No s'utilitzen galetes de seguiment i no es recullen cap entrada d'usuari ni dada d'ús. Quan tanques o actualitzes la pàgina, tots els continguts d'entrada i sortida s'esborren automàticament de la memòria. És adequada per processar missatges XML que contenen dades sensibles de negoci (informació de comandes, credencials d'usuari, respostes d'API empresarials).
Authoritative References
- Comprimir JSON
- CSV a JSON
- JSON a CSV
- JSON Diff
- JSON Escape / Unescape
- Aplanar JSON
- JSON Formatter
- Generador de JSON
- Consulta JSONPath
- Combinar JSON
- Reparació JSON
- Validador d'Esquema JSON
- Ordenar JSON
- JSON Stringify
- JSON a HTML
- JSON a Java
- JSON a Markdown
- JSON a SQL
- JSON a TOML
- JSON a TypeScript
- XML a JSON
- Converteix JSON a XML
- YAML a JSON
- JSON → YAML
- JSON a Python
- JSON a Go
- JSON a Rust
- JSON a Swift
- JSON a C#
- JSON a C++
- JSON a PHP