Data & APIs

XML to JSON: Convert Structured Data Safely — Practical Guide

Convert XML to JSON while accounting for attributes, repeated elements, namespaces, and text that does not map directly to objects. Read the steps and example.

Photorealistic editorial photo for How To Convert Xml To Json
Data & APIs · Practical ideas for your next build

XML and JSON organize data differently. XML has elements, attributes, namespaces, and mixed text, while JSON uses objects, arrays, and primitive values. A converter must choose how XML features map into JSON, so two tools can produce different but valid outputs. Before converting, decide how attributes and repeated elements should be represented. Keep the original XML and test the result with the application that will consume it.

Understand the mapping choices

Repeated sibling elements commonly become an array, while one occurrence may become a single object unless the converter normalizes both cases. Attributes can be prefixed, grouped in a special object, or omitted. Text nodes mixed with child elements need an explicit representation. Namespaces may be retained in names or resolved through namespace declarations. Document these conventions so downstream code does not assume a different shape for the next record.

Check namespaces and data types

XML element values begin as text, even when they look like numbers or dates. A converter may keep them as strings or infer types. Preserve leading zeros in identifiers and choose exact behavior for booleans, empty elements, and nil values. Namespace prefixes are aliases, not the namespace identity itself; compare namespace URIs where correctness depends on them. Validate the source against its DTD or XML Schema when the producer provides one.

Validate both sides of the conversion

Parse the converted JSON and compare key records with the XML source. Test documents with repeated elements, missing elements, empty tags, attributes, and non-ASCII text. Then validate the JSON against the consumer’s expected schema. A valid JSON document can still be semantically wrong if an attribute disappears or an array collapses into one object. Keep conversion logs free of credentials and sensitive payloads.

Worked example

EXAMPLE
<item id="A1"><name>Notebook</name><tag>school</tag><tag>paper</tag></item>

Possible JSON mapping:
{"item":{"@id":"A1","name":"Notebook","tag":["school","paper"]}}

Does XML always convert to one standard JSON shape?

No. XML features such as attributes and mixed content have multiple possible JSON mappings; follow the target application’s contract.

Reference and further reading

Read the official documentation ↗