JSON to XML

Nothing you paste here leaves your browser. There is no server to send it to — the conversion happens on your own device, and nothing is uploaded, stored or seen by anyone. Paste it, or drop a file on the page.

What this conversion costs you

XML needs a root, and JSON keys are not always legal element names. You choose the root element. Keys containing spaces or starting with a digit cannot be element names at all, so they are renamed and the page reports how many — an XML file that will not parse is a worse outcome than a renamed tag.

How it works, and why nothing is uploaded

JSON parsing is built into JavaScript, so reading it costs nothing at all. The XML is written here, indented, with a declaration.

Everything happens in the page you are looking at. There is nothing to upload, no queue, no size limit but your own memory, and nothing that could be read by anybody — because it is never sent.

Where to go next

What this does not do

It converts one document at a time and does not validate against a schema, transform with XSLT, or query with JSONPath. It will tell you when your input does not parse, and where, rather than producing something that looks converted.

Nothing is uploaded, so it cannot work on a file that is not on the device you are using, and it does not remember what you converted a moment ago. Close the tab and it is gone.