Frequently asked questions
How are attributes converted?
By default an attribute such as id="bk101" becomes the key "@id". The @ keeps attributes apart from child elements, and our JSON to XML converter turns @keys back into attributes. You can also choose _id, a plain id without a prefix, or leave attributes out.
What happens to repeated elements?
Elements that repeat, such as several <book> elements, become a JSON array. If an element repeats in one place, it becomes an array everywhere it appears under the same parent, so every record has the same shape even when it holds only one item. Choose Every element in an array if your program always expects arrays.
What is "#text"?
When an element has attributes or child elements and also text, like <price currency="EUR">29.95</price>, the text goes in a "#text" key next to the attributes: {"@currency": "EUR", "#text": 29.95}. An element that holds only text simply becomes its value.
Are numbers and true/false converted?
Yes, when Numbers and true/false as JSON values is ticked. 29.95 becomes a number and true becomes a boolean. Numbers keep their exact digits, so large IDs are not rounded, and values such as 007 or +44 stay text because a number would lose their leading characters. Untick the option to keep every value as text.
What is lost when converting XML to JSON?
JSON has no place for comments or processing instructions, so they are left out. Namespace prefixes stay part of the names, such as "dc:title", and xmlns declarations are kept like other attributes. Empty elements become null. Text mixed between child elements is joined into one "#text" value; the tool tells you when that happens.
Is my XML uploaded or stored?
No. The conversion runs inside your browser, so your data never leaves your device. Our server only records that one operation was done, along with your network address, so the daily limit shown above the tool can be applied.





