正在加载,请稍候…

XML to JSON Converter: Migrate from Legacy XML APIs

Convert XML to JSON for modern applications. Learn about the structural differences and common conversion patterns.

XML vs. JSON: When and Why to Convert

XML (Extensible Markup Language) and JSON (JavaScript Object Notation) are both text-based data interchange formats, but they serve different ecosystems. XML dominated enterprise and web services through the 2000s, while JSON has become the standard for modern REST APIs. Converting between them is a common task when integrating older systems with newer ones.

Why Convert XML to JSON?

Modern API Consumption

Most JavaScript frameworks and modern backends work natively with JSON. XML responses from older APIs need conversion before they can be easily processed.

Performance

JSON is typically more compact than equivalent XML:

  • XML has opening and closing tags for each field
  • XML requires explicit type declarations
  • JSON arrays map naturally to JavaScript arrays
  • JSON parsing is generally faster in JavaScript engines

Developer Experience

JSON is easier to read and write manually. The JSON.parse() and JSON.stringify() functions are built into every JavaScript runtime.

Integration

Modern tools like Node.js, Python's requests library, and virtually all REST APIs use JSON natively.

XML Structure vs. JSON Structure

Simple XML

<user>
  <id>123</id>
  <name>Alice Smith</name>
  <email>alice@example.com</email>
  <active>true</active>
</user>

Equivalent JSON:

{
  "user": {
    "id": "123",
    "name": "Alice Smith",
    "email": "alice@example.com",
    "active": "true"
  }
}

XML with Attributes

<product id="456" category="electronics">
  <name>Laptop</name>
  <price currency="USD">999.99</price>
</product>

Common JSON representations for attributes:

{
  "product": {
    "@id": "456",
    "@category": "electronics",
    "name": "Laptop",
    "price": {
      "@currency": "USD",
      "#text": "999.99"
    }
  }
}

Attributes create ambiguity in XML-to-JSON conversion — different libraries handle them differently.

XML Arrays (Repeated Elements)

<users>
  <user><id>1</id><name>Alice</name></user>
  <user><id>2</id><name>Bob</name></user>
</users>

JSON conversion (array of objects):

{
  "users": {
    "user": [
      {"id": "1", "name": "Alice"},
      {"id": "2", "name": "Bob"}
    ]
  }
}

Common Challenges in XML-to-JSON Conversion

Type Information

XML has no native type system — everything is text. In the example above, id became the string "123" rather than the number 123. Type coercion must be handled explicitly or by convention.

Attributes vs. Elements

XML allows both <tag attribute="value">content</tag> and nested <parent><child>value</child></parent>. These need consistent handling in the JSON representation.

Text Nodes with Attributes

When an XML element has both attributes and text content, the JSON must represent both, often using special keys like #text for the text content.

Namespaces

XML supports XML namespaces (xmlns:prefix="uri"). These can complicate JSON representations significantly. Most converters strip namespaces or flatten them.

CDATA Sections

<![CDATA[... raw content ...]]> sections contain text that should not be parsed as XML. These are typically converted to plain strings in JSON.

Comments

XML comments (<!-- comment -->) are discarded during JSON conversion as JSON has no comment syntax.

Popular Conversion Libraries

JavaScript

  • xml2js: Simple, widely used Node.js library
  • fast-xml-parser: High-performance with customizable output
  • xml-js: Handles attributes and elements consistently

Python

  • xmltodict: Converts XML to Python dicts (JSON-serializable)
  • lxml: Comprehensive XML/HTML processing with ElementTree API

Command Line

  • xq (xq command from yq/xq tools): XPath queries with JSON output
  • python3 -c "import xmltodict, json, sys; print(json.dumps(xmltodict.parse(sys.stdin.read()), indent=2))": Quick one-liner

XML Web Services (SOAP)

Many legacy enterprise systems use SOAP (Simple Object Access Protocol), which wraps business data in XML envelopes:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <getUser>
      <userId>123</userId>
    </getUser>
  </soap:Body>
</soap:Envelope>

Converting SOAP responses to JSON typically requires stripping the envelope and extracting the relevant payload.

Using the XML-to-JSON Converter

Our tool:

  1. Paste XML content — accepts any well-formed XML
  2. Instant JSON output — converts in real time
  3. Attribute handling — choose how to represent XML attributes
  4. Array detection — correctly identifies repeated elements as arrays
  5. Formatting options — indented (readable) or compact output
  6. Copy JSON — one-click copy of the result
  7. Download — save the JSON file

Use it for converting API responses from legacy SOAP or XML services, transforming configuration files, and integrating XML data feeds into modern applications.