JSON and XML can both represent hierarchical data, and they disagree about enough that no conversion between them is purely mechanical. JSON has objects, arrays, strings, numbers, booleans and null. XML has elements, attributes and text, and no native notion of a number or a list at all. Every converter therefore adopts conventions, and the useful thing is knowing what they are.
Objects map cleanly: each key becomes an element containing the converted value. Arrays do not, because XML has no array. The usual convention is to repeat the element name once per item, so a list of three tags becomes three tag elements in sequence. That works and it loses one thing: an array of length one and a single value become indistinguishable in the output, which is why round-tripping XML back to JSON does not always return what you started with.
Key names are the other constraint. XML element names cannot begin with a digit, cannot contain spaces, and have rules about which characters are permitted. JSON keys have no such limits, so a key like "2024 total" is perfectly legal JSON and not a legal element name. Something has to give: the name is escaped, rewritten, or the conversion fails, and it is worth knowing which of the three your output represents.
Types are flattened. The number 42, the string "42" and a boolean all become text nodes, because that is all XML has. A consumer that needs the distinction has to recover it from a schema, which is exactly what XML schemas are for and exactly what a bare conversion does not give you.
Most people converting JSON to XML are feeding a system that only speaks XML: an older enterprise integration, a SOAP endpoint, a government or banking interchange format, a publishing pipeline. Those systems usually have a schema, and the honest advice is to validate the output against it rather than assume a structurally sensible conversion is the one they expect.
As with every tool on this site, the conversion runs in your browser tab and the document is never transmitted, which is the point when the payload is the kind of interchange file that tends to contain financial or personal records.