Convert XML to JSON
Turn an XML document into JSON.
About this converter
Most often to get an old feed, an export or a SOAP response into something a modern codebase can read without ceremony.
The awkward part is that XML distinguishes attributes from child elements and JSON has only keys, so the two would collide — an id attribute and an <id> child cannot both be "id". Attributes are therefore prefixed with @_, and element text that sits alongside attributes is kept under #text. Nothing is thrown away, which is what converters that drop attributes do.
Repeated elements become a list. An element that appears once becomes a single value rather than a list of one — which is XML's oldest ambiguity, since nothing in a document says whether a single <item> is one item or a list that happens to have one entry in it.
Frequently asked questions
What are the @_ keys?
Attributes. XML keeps attributes and child elements in separate namespaces and JSON does not, so an attribute called id and a child element called id would overwrite each other. The prefix keeps both and records which was which.
What is #text?
The text content of an element that also has attributes.
Why is a single element not a list?
Because nothing in the XML says it should be. A document with one
Does what I paste get sent anywhere?
No. The conversion runs in your browser, on your own machine — which is why the result appears as you type. Nothing is uploaded and nothing is logged. That matters for this kind of tool in particular: config files and API responses are exactly the things that carry keys, hostnames and customer data.