The same data in both
JSON: {"name": "Ann", "skills": ["js", "php"]}
XML: <person><name>Ann</name><skills>js</skills><skills>php</skills></person>Main differences
- Syntax: JSON uses braces, brackets and quotes. XML uses opening and closing tags, which makes it longer.
- Data types: JSON has numbers, booleans, null, strings, arrays and objects. XML stores everything as text unless a schema says otherwise.
- Arrays: JSON has real arrays. XML repeats elements.
- Attributes: XML elements can carry attributes. JSON has no equivalent.
- Comments: XML allows comments. JSON does not.
- Schemas and namespaces: XML has mature validation through XSD and namespaces. JSON has JSON Schema.
When JSON is a good fit
Web APIs, browser apps and configuration that mostly holds simple objects and lists. It is compact and maps directly to the data structures in most programming languages.
When XML is a good fit
Documents with mixed text and markup, systems that rely on schemas and namespaces, and many enterprise, publishing and older web service integrations. Formats such as SVG and RSS are XML.
Converting between them
Conversion is not always lossless. Arrays, attributes, data types and element order all need a convention. Choose one and keep to it. The JSON to XML converter and the XML to JSON converter use matching conventions, with @ for attributes and #text for text, so data survives a round trip.
Quick rule
Use JSON for data exchange between apps. Use XML when you need documents, schemas or a system already expects it.
Convert your data. Turn JSON into XML, or XML into JSON, right in your browser.