JSON to XML converter

Turn JSON into well-formed XML: keys become elements, @name keys attributes, #text the element's text and arrays repeated elements. It is the reverse of the XML to JSON converter, so a document converted there comes back the same. Everything runs in your browser.

Attributes
Indent
Arrays
Names
Used when the JSON is not one object with one key, and for items of a top-level array
Schema The schema and the files it includes or imports

How JSON maps to XML

  • An object with one key, like {"order": {…}}, makes that key the document element. Anything else is wrapped in a root element you name.
  • Keys become child elements; an array repeats its element once per item, and the items of a top-level array become item elements.
  • Keys starting with @ (or the prefix you choose) that hold a string, number or boolean become attributes; #text becomes the element's text.
  • null becomes an empty element; numbers and booleans are written as JSON writes them.

Keys that are not XML names

XML names can't contain spaces or start with a digit, so "delivery date" becomes delivery_date and "2x" becomes _2x; the renamed keys are listed under the result. &, < and > in values, and quotes in attributes, are escaped.

After converting

The XML has no schema yet. Generate one from the result with the XSD generator, then check new documents against it in the validator.

Questions

Is my JSON uploaded?

No. The conversion runs in your browser.

How do I make an attribute?

Prefix the key: {"price": {"@currency": "EUR", "#text": "75.00"}} gives <price currency="EUR">75.00</price>.

Can the XML have namespaces?

Yes: write the declarations as keys on the root object ("@xmlns" or "@xmlns:cbc") and use prefixed keys such as "cbc:ID".

What if the JSON is invalid?

The converter stops at the first syntax error and shows its line and column.

Other tools

  • XML formatter: Pretty-print or minify XML, keeping text, CDATA and comments as written.
  • XPath tester: Evaluate XPath 3.1 against a document and see each match with its line.
  • XSD generator: Infer an XML Schema from sample documents, checked against them.
  • XML from XSD: Generate a sample XML document from a schema, validated against it.
  • XSLT transformer: Run XSLT 1.0, 2.0 or 3.0 on a document and see the result, the messages and the files it writes.
  • XML diff: Compare two XML documents as trees: changed, added and removed elements, attributes and text.
  • XML to JSON converter: Convert XML to JSON, with arrays where an element repeats or wherever its XSD allows.
  • XML to CSV converter: Turn a repeating element into CSV rows: invoice lines, products, records.
  • E-invoice viewer: Read an XRechnung, ZUGFeRD, Factur-X or Peppol invoice as a document, and print it.
  • XML validator: check a document against XSD, DTD, RelaxNG or Schematron, up to 1 GB.