Saída XML
O JSON de exemplo produz este XML:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<name>Alice</name>
<age>30</age>
<address>
<city>Istanbul</city>
</address>
</root>
Cada chave JSON se torna um elemento XML. O objeto aninhado address se torna um elemento filho contendo city. Números e strings são ambos armazenados como conteúdo de texto, que é o padrão do XML.
Como JSON é Mapeado para XML
JSON e XML representam os mesmos dados com diferentes convenções estruturais.
| JSON | XML |
|---|---|
{ "key": "value" } | <key>value</key> |
{ "key": 42 } | <key>42</key> |
{ "key": true } | <key>true</key> |
{ "key": null } | <key/> (elemento vazio) |
["a", "b"] | Elementos <item> repetidos |
| Objeto aninhado | Elementos filhos aninhados |
Objetos JSON se mapeiam limpamente para elementos XML. Arrays requerem uma decisão: envolvê-los em um elemento pai com nome plural ou achatá-los. A maioria dos conversores escolhe a abordagem de elemento pai porque preserva o limite do array.
Quando Converter JSON para XML
Serviços Web SOAP
APIs SOAP aceitam apenas payloads XML. Se tem dados JSON de uma API REST ou exportação de banco de dados e precisa enviá-los para um endpoint SOAP, a conversão é obrigatória. O corpo da requisição deve ser XML válido com a estrutura de namespace correta.
Integração de Dados Corporativos
Sistemas bancários, plataformas de seguros, portais governamentais e sistemas de saúde frequentemente trocam dados em formatos XML como HL7, XBRL ou estruturas definidas por DTD personalizado. Converter respostas de API JSON para esses formatos XML evita construir um parser personalizado para cada sistema.
Publicação de Documentos
XML é o formato nativo para sistemas de publicação de documentos: DocBook, DITA e fluxos de trabalho XHTML. Se gera conteúdo programaticamente em JSON, convertê-lo para XML permite alimentar esses fluxos de publicação sem reformatação manual.
Migração de Configuração
Algumas ferramentas e frameworks ainda usam XML para configuração: arquivos Maven POM, contexto de aplicação Spring, layouts Android e definições de pipeline Jenkins. Converter configuração JSON para XML permite migrar entre cadeias de ferramentas.
Comparação XML vs JSON
XML tem vantagens que importam em contextos específicos. XML suporta atributos, que permitem anexar metadados a elementos sem adicionar nós filhos. XML tem uma linguagem de esquema formal (XSD) para validação que é mais expressiva que JSON Schema para certos casos de uso. Namespaces XML previnem colisões de nomes de elementos entre vocabulários. XML suporta comentários e instruções de processamento que não têm equivalente em JSON.
JSON vence por simplicidade e experiência do desenvolvedor. É mais curto, fácil de ler, tem suporte nativo em cada linguagem de programação moderna, e cada API web o retorna por padrão. Para projetos novos, JSON é quase sempre a melhor escolha a menos que tenha um requisito específico para funcionalidades XML.
Armadilhas do XML
Regras de Nomenclatura de Elementos
Nomes de elementos XML não podem começar com um número, conter espaços, ou usar caracteres como @, $ ou #. Chaves JSON como 123-abc ou first name precisam ser transformadas em nomes de elementos válidos durante a conversão. O conversor tipicamente substitui caracteres inválidos por sublinhados.
Tratamento de Namespaces
Namespaces XML usam uma sintaxe de dois pontos (prefix:name) que não tem equivalente em JSON. Se seu XML alvo requer namespaces, pode ser necessário adicioná-los manualmente após a conversão. O conversor produz um documento XML sem namespaces por padrão.
Informação de Tipo
XML é apenas texto no nível de elemento. O número 30 e a string "30" ambos se tornam <age>30</age> Se seu consumidor XML precisa distinguir tipos, deve definir um esquema XSD ou usar atributos para anotar a informação de tipo.