JSON to XML Converter
Paste JSON — get well-formed, indented XML. Keys starting with @ become attributes.
JSON to XML, without surprises
Converters often change your data quietly. This one keeps values exact and tells you whenever something can’t be carried over.
- Always well-formed
- Special characters are escaped and element names are made valid.
- Attributes & text
- @key becomes an attribute and #text the element text — the same convention as XML to JSON.
- Your root
- Pick the root element name, or use your JSON’s single top-level key.
- Private & free
- Runs in your browser — config files with secrets never leave your computer.
- Paste, drop or open
- Drop a .json file anywhere on the input, or switch direction with one click.
Frequently asked questions
How are arrays converted?+
An array becomes a repeated element: {"tag": ["a", "b"]} gives <tag>a</tag><tag>b</tag>. A top-level array is wrapped in <root><item>…</item></root>.
How do I make an attribute?+
Start the key with @: {"book": {"@id": "42", "title": "Emma"}} gives <book id="42"><title>Emma</title></book>. Use #text for an element’s text next to attributes.
What if a key is not a valid XML name?+
Spaces and other invalid characters are replaced with _, and names that start with a digit get a leading _. CurlyJSON tells you when this happens.
Is my data uploaded?+
No. Conversion runs in your browser.