CurlyJSON
Tools

JSON to XML Converter

Paste JSON — get well-formed, indented XML. Keys starting with @ become attributes.

JSON
XML

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.