XML to JSON Converter
Convert bounded, well-formed XML into readable JSON locally with attributes, text, namespaces, and repeated elements preserved.
Privacy: your files never leave your device. All processing happens locally in your browser.
How to use
- 1.Paste one well-formed XML document and remove any DOCTYPE declaration.
- 2.Choose compact, two-space, or four-space JSON indentation.
- 3.Select Convert to JSON, review the explicit @attributes/#text convention, and copy the result.
About XML to JSON Converter
XML to JSON Converter transforms one well-formed XML document into a predictable JSON representation inside the browser. Paste up to 200,000 characters, choose compact, two-space, or four-space indentation, and convert. The result can be reviewed and copied without sending the source to a server.
The root element becomes the top-level JSON key. Element attributes are grouped under @attributes. Plain text-only elements become strings; text is stored under #text when an element also has attributes or child elements. Repeated sibling names become arrays in document order, while a single child remains a single value. Namespace prefixes are preserved in element and attribute names.
The browser's native XML DOMParser performs syntax parsing. Parser errors are rejected visibly instead of returning partial output. DOCTYPE declarations are deliberately blocked, and the tool does not fetch schemas, DTDs, external entities, namespaces, stylesheets, or remote resources. Comments and processing instructions are not copied into JSON. CDATA contributes text content.
XML and JSON do not have a universal one-to-one mapping. This tool uses an explicit convention rather than claiming an official conversion standard. Mixed-content documents retain combined direct text under #text and child elements by name, but exact interleaving between text and child nodes is not represented. Empty elements become empty strings unless they carry attributes.
The converter is useful for API samples, configuration inspection, test fixtures, and small data migrations where this object shape fits the receiving system. Always compare the output contract required by your application: another library may use different prefixes, always-array children, preserve comments, coerce numbers and booleans, or represent namespaces separately.
No values are automatically converted to numbers, booleans, or null, because lexical XML text such as leading-zero identifiers must not silently change meaning. For very large documents, streaming conversion, schema validation, lossless mixed-content preservation, or production ETL, use a dedicated parser in a version-controlled application.
Methodology & sources
Bound source length, reject DOCTYPE declarations, parse with the browser DOMParser, fail on parsererror, map the root name to the top-level key, group attributes under @attributes, preserve namespace-prefixed names and sibling order, fold repeated child names into arrays, retain direct text under #text when structure is present, keep lexical values as strings, and serialize with the selected indentation.
Frequently asked questions
- How are attributes represented?
- Attributes are grouped in an @attributes object on their element.
- What happens to repeated elements?
- Sibling elements with the same name become a JSON array in source order.
- Does it infer numbers and booleans?
- No. XML text stays text so identifiers and lexical values are not silently changed.
- Does it load external entities or DTDs?
- No. DOCTYPE is rejected and the converter performs no network fetches.
Related tools
- XML FormatterBeautify or minify XML instantly in your browser — no upload.
- JSON FormatterFormat, minify, and validate JSON in your browser — pretty-print or compress with pinpoint error locations.
- JSON ValidatorCheck if JSON is valid, pinpoint syntax errors by line and column, and see a structure diagnostic, in-browser.
- CSV To JSONParse a bounded RFC 4180-style comma file locally and export string-preserving JSON without losing quoted commas, quotes, or line endings.
- ASCII TableLook up every standard 7-bit ASCII code with exact decimal, hexadecimal, octal, and binary values.
- BOM RemoverRemove exactly one leading U+FEFF from pasted decoded text locally while preserving every internal, trailing, or second leading occurrence.