Turn JSON or JSON Lines into verified XML without uploading your data. Choose readable natural XML, an @attribute/#text API convention, or a lossless typed profile that can reconstruct the original JSON exactly.
The converter exposes mapping decisions that generic one-click tools often hide.
Warnings and useful details for interoperability, reversibility and XML naming.
No files queued.
Natural and convention profiles use these names. Lossless mode intentionally fixes its vocabulary so the original JSON is exactly recoverable.
A sample of JSON paths and their intended XML destinations. This is a mapping aid, not an XSD.
| JSON path | XML destination | Type |
|---|---|---|
| Convert data to populate the preview. | ||
Readable XML for APIs, config files and human inspection. JSON keys become elements; unsafe XML names fall back without losing the original key.
Use JSON keys such as @id and #text when your destination XML needs attributes or mixed-style element content.
Uses a small typed XML vocabulary for objects, arrays, numbers, strings, booleans and null. Exact JSON types, key order and long numeric tokens are preserved.
JSON and XML do not have a one-to-one structural mapping. JSON has arrays and primitive types; XML has element names, attributes, namespaces and text nodes. A trustworthy converter therefore needs to tell you which mapping it is using instead of pretending there is one universally correct XML result.
{"@id":"A1","#text":"Hello"}.{
"000 key": 900719925474099312345,
"tags": ["a", "b"],
"active": true,
"empty": null
}
→ typed XML keeps the exact key, array boundary,
boolean/null types and every digit of the large integer.Keys that are safe XML QNames become element names. A key such as display name, 123code or an undeclared api:value cannot safely become a direct XML tag. Instead of silently rewriting the key, this tool emits the configured fallback element and stores the original key in a key attribute.
Repeat sibling elements is compact and common in APIs. Container + item keeps an explicit array wrapper and is often clearer when empty arrays or nested lists matter. Lossless mode always encodes array boundaries explicitly.
Natural/convention mode can produce an empty element, omit the field, or write xsi:nil="true". Those choices are semantically different. Lossless mode always has an explicit typed null element.
Declare prefixes in Mapping lab before using prefixed root, element or attribute names. Undeclared prefixes are never emitted. This prevents output that looks like XML but fails namespace-aware parsers.
Conversion, audit, verification and ZIP creation run in the browser. XML special characters are escaped, XML 1.0-illegal control characters are rejected with a clear error, duplicate JSON keys are rejected instead of overwritten, and unsafe integer tokens are never forced through JavaScript floating-point numbers.
Natural XML is intentionally opinionated and is not automatically reversible unless your downstream system knows the same conventions. This tool does not infer an enterprise XSD or transform against an existing schema. For complex schema-to-schema mapping, XSLT generation or multi-source ETL, dedicated mapping software remains appropriate.