What is this JSON to XML converter?
A free, browser-based tool that converts JSON to XML as you type. Paste your JSON and the XML appears instantly, ready to copy or download. All processing happens locally in your browser, so your data is never uploaded.
When a JSON API meets an XML-only consumer
The integration gap is familiar: the data you have comes from a modern API as JSON, and the system that needs it, a SOAP-era ERP, a procurement portal, a feed importer built around RSS-like documents, accepts nothing but XML. Both formats describe trees, so a mechanical translation exists: an object becomes an element containing its children, and an array becomes the same element repeated once per item.
What a mechanical translation cannot supply is the receiving system's vocabulary. XML consumers are typically strict about exact element names, casing, and order, often enforced by a DTD or XSD. The conversion gives you a well-formed document; making it valid for that particular consumer is the follow-up step.
Adjusting the JSON before it becomes XML
Do the renaming on the JSON side, where find-and-replace on keys is trivial, rather than editing angle brackets afterwards. A top-level object with a single key converts with that key as the document root; arrays and multi-key objects get a generic wrapper, so if the target insists on a specific root, shape the JSON that way first.
Two value-level notes. Numbers and booleans become plain text content, which is what schema-typed systems expect to parse anyway. Null values come out as empty elements, so delete keys the target would rather not receive at all. Finish by validating against the consumer's XSD or a sample file they accept.
How to use it
- Paste your JSON into the left panel, or upload a JSON file.
- The XML output appears instantly on the right as you type.
- Copy the result or download it as a file.
How the data is mapped
- A top-level object with a single key becomes the XML root element; anything else is wrapped in <root>.
- Keys starting with "@" become attributes, and a "#text" key becomes the element's text.
- Arrays repeat the element name once per item ("item": [a, b] → two <item> elements).
Example
Input (JSON)
{
"order": {
"@id": "1001",
"customer": "Alice",
"item": [
{ "sku": "A-1", "qty": "3" },
{ "sku": "B-2", "qty": "5" }
]
}
}Output (XML)
<?xml version="1.0" encoding="UTF-8"?>
<order id="1001">
<customer>Alice</customer>
<item>
<sku>A-1</sku>
<qty>3</qty>
</item>
<item>
<sku>B-2</sku>
<qty>5</qty>
</item>
</order>JSON vs XML at a glance
| Format | Type | Structure | Best for |
|---|---|---|---|
| JSON | Plain text | Objects, arrays, strings, and numbers | Modern APIs and programming |
| XML | Plain text markup | Nested named elements plus attributes | System integrations, feeds, legacy APIs |



