ToolDeck

JSON para XML

Converta JSON para formato XML

Experimente um exemplo

Entrada JSON

Saída XML

Roda localmente · Seguro para colar segredos
O XML aparecerá aqui…

O que é a Conversão de JSON para XML?

JSON (JavaScript Object Notation) e XML (eXtensible Markup Language) são os dois formatos de troca de dados mais usados no desenvolvimento de software. O JSON usa pares chave-valor e arrays em uma sintaxe compacta, enquanto o XML envolve os dados em tags de abertura e fechamento com atributos opcionais. Converter JSON para XML significa traduzir os primitivos estruturais do JSON — objetos, arrays, strings, números, booleanos e null — em um documento XML bem formado com o aninhamento de elementos correspondente.

O XML continua sendo o formato obrigatório em muitos sistemas corporativos, APIs governamentais, web services SOAP e padrões setoriais como HL7 (saúde), FpML (finanças) e XBRL (relatórios financeiros). Quando sua aplicação produz JSON, mas o sistema consumidor espera XML, um conversor de JSON para XML realiza a tradução sem reestruturação manual. A conversão segue regras de mapeamento previsíveis: objetos JSON tornam-se elementos XML, itens de array tornam-se elementos irmãos repetidos, e valores primitivos tornam-se nós de texto.

Não existe um único RFC ou padrão W3C que defina como JSON se mapeia para XML. Bibliotecas diferentes produzem saídas diferentes para a mesma entrada. A convenção mais comum (usada por esta ferramenta) envolve todo o documento em um elemento raiz configurável, converte cada chave JSON em um elemento filho XML e representa itens de array como elementos repetidos com o mesmo nome de tag. Entender essas regras de mapeamento é importante quando o sistema receptor exige um esquema XML específico (XSD).

Por que Usar um Conversor Online de JSON para XML?

Escrever XML manualmente a partir de uma fonte JSON é tedioso e sujeito a erros. Tags sem correspondência, elementos de fechamento esquecidos e aninhamento incorreto produzem documentos que falham na validação de esquema. Um conversor lida com a tradução estrutural automaticamente.

Conversão Instantânea no Seu Navegador
Cole o JSON e obtenha XML bem formado em milissegundos. Sem viagem ao servidor, sem configuração de CLI, sem instalação de dependências. A conversão roda inteiramente em JavaScript no seu dispositivo.
🔒
Dados Sensíveis Ficam Privados
Sua entrada JSON nunca sai da aba do navegador. Todo o processo de análise e geração do XML ocorre no lado do cliente, tornando seguro converter payloads com chaves de API, tokens ou dados de produção.
📋
Sem Conta ou Login Necessário
Abra a página, cole seu JSON e copie a saída XML. Sem formulários de cadastro, verificação de e-mail ou limites de uso entre você e seus dados convertidos.
🌳
Estruturas Aninhadas Tratadas Automaticamente
Objetos profundamente aninhados, arrays mistos e valores null são todos convertidos corretamente. A ferramenta preserva a hierarquia completa do JSON de entrada na árvore XML resultante.

Casos de Uso: JSON para XML

Integração com Web Services SOAP
Sua API REST retorna JSON, mas o endpoint SOAP de um parceiro exige corpos de requisição em XML. Converta o payload JSON para XML antes de envolvê-lo em um envelope SOAP.
Troca de Dados Corporativos
Sistemas legados de ERP e CRM frequentemente aceitam apenas importações em XML. Converta exportações JSON de ferramentas modernas em feeds XML que correspondam ao esquema esperado.
Configuração de Pipeline CI/CD
Algumas ferramentas de build (Maven, Ant, MSBuild) usam arquivos de configuração XML. Gere fragmentos de configuração XML a partir de arquivos de parâmetros JSON durante builds automatizados.
Preparação de Dados de Teste para QA
Gere fixtures XML de teste a partir de conjuntos de dados JSON. Produza rapidamente documentos XML válidos para testar parsers XML, transformações XSLT ou consultas XPath.
Integração de Formatos em Pipelines de Dados
Pipelines de ETL que consomem XML podem receber dados de APIs que produzem JSON. Converta resultados JSON intermediários para XML antes de carregá-los na etapa de processamento baseada em XML.
Aprendizado de Estrutura XML
Estudantes que aprendem XML podem colar estruturas JSON familiares e ver a representação XML equivalente. Isso torna o aninhamento de tags, a hierarquia de elementos e a estrutura de documentos concretos.

Regras de Mapeamento de JSON para XML

Como não existe um padrão universal para conversão de JSON para XML, ferramentas diferentes produzem saídas diferentes. A tabela abaixo mostra as convenções de mapeamento usadas por este conversor e pelas bibliotecas mais populares (js2xmlparser, xmlbuilder, fast-xml-parser). A convenção de irmãos repetidos para arrays tornou-se dominante porque espelha como esquemas XML modelam coleções naturalmente — cada item é um elemento de primeira classe, não um filho envolvido — e integra-se bem com consultas XPath e transformações XSLT.

JSON TypeJSON ExampleXML Output
Object{"name": "Alice"}<name>Alice</name>
Nested object{"user": {"age": 30}}<user><age>30</age></user>
Array{"colors": ["red", "blue"]}<colors>red</colors><colors>blue</colors>
String"hello"<root>hello</root>
Number42<root>42</root>
Booleantrue<root>true</root>
Nullnull<root/>
Empty object{}<root/>
Empty array[](no child elements)

Exemplos de Código

Abaixo estão trechos de código executáveis para converter JSON para XML em três ambientes. Cada exemplo produz XML bem formado a partir de um objeto JSON de amostra.

JavaScript (Node.js)
import { create } from 'xmlbuilder2';

const json = {
  order: {
    id: 1024,
    items: [
      { sku: "A1", qty: 2 },
      { sku: "B3", qty: 1 }
    ],
    shipped: false
  }
};

const xml = create({ version: '1.0' })
  .ele(json)
  .end({ prettyPrint: true });

console.log(xml);
// → <?xml version="1.0"?>
// → <order>
// →   <id>1024</id>
// →   <items>
// →     <sku>A1</sku>
// →     <qty>2</qty>
// →   </items>
// →   <items>
// →     <sku>B3</sku>
// →     <qty>1</qty>
// →   </items>
// →   <shipped>false</shipped>
// → </order>
Python
import json
import xmltodict

data = {
    "order": {
        "id": 1024,
        "items": [
            {"sku": "A1", "qty": 2},
            {"sku": "B3", "qty": 1}
        ],
        "shipped": False
    }
}

# xmltodict.unparse expects a single root key
xml = xmltodict.unparse(data, pretty=True)
print(xml)
# → <?xml version="1.0" encoding="utf-8"?>
# → <order>
# →   <id>1024</id>
# →   <items>
# →     <sku>A1</sku>
# →     <qty>2</qty>
# →   </items>
# →   <items>
# →     <sku>B3</sku>
# →     <qty>1</qty>
# →   </items>
# →   <shipped>false</shipped>
# → </order>
Go
package main

import (
	"encoding/json"
	"encoding/xml"
	"fmt"
)

type Item struct {
	SKU string `json:"sku" xml:"sku"`
	Qty int    `json:"qty" xml:"qty"`
}

type Order struct {
	XMLName xml.Name `xml:"order"`
	ID      int      `json:"id" xml:"id"`
	Items   []Item   `json:"items" xml:"items"`
	Shipped bool     `json:"shipped" xml:"shipped"`
}

func main() {
	raw := `{"id":1024,"items":[{"sku":"A1","qty":2},{"sku":"B3","qty":1}],"shipped":false}`

	var order Order
	json.Unmarshal([]byte(raw), &order)

	out, _ := xml.MarshalIndent(order, "", "  ")
	fmt.Println(xml.Header + string(out))
	// → <?xml version="1.0" encoding="UTF-8"?>
	// → <order>
	// →   <id>1024</id>
	// →   <items>
	// →     <sku>A1</sku>
	// →     <qty>2</qty>
	// →   </items>
	// →   ...
}

Perguntas Frequentes

A conversão de JSON para XML é sem perda?
Estruturalmente, sim — todo valor JSON mapeia para um elemento XML ou nó de texto. No entanto, o XML não distingue nativamente entre números, booleanos e strings como o JSON faz. O valor 42 em JSON torna-se o conteúdo de texto "42" em XML. Se o sistema receptor depende de declarações de tipo de XML Schema (XSD), ele pode recuperar os tipos originais durante a análise. Sem um esquema, as informações de tipo são efetivamente perdidas no documento convertido.
Como arrays JSON são convertidos para XML?
Cada item do array torna-se um elemento XML irmão com o mesmo nome de tag. Por exemplo, o array JSON "colors": ["red", "blue"] produz dois elementos: &lt;colors&gt;red&lt;/colors&gt; e &lt;colors&gt;blue&lt;/colors&gt;. Alguns conversores envolvem arrays em um elemento pai (ex.: &lt;colorsList&gt;), mas a abordagem de irmãos repetidos é mais comum e corresponde à convenção usada por JAXB, Jackson e fast-xml-parser.
O que acontece com valores null na conversão?
Um null JSON tipicamente converte-se em um elemento XML vazio — por exemplo, "middle_name": null torna-se &lt;middle_name/&gt;. Algumas bibliotecas adicionam um atributo xsi:nil="true" para sinalizar um null explícito, o que é útil quando o sistema de destino valida contra um esquema XSD. Este conversor gera um elemento vazio com fechamento automático por padrão.
Posso converter XML de volta para JSON?
Sim, mas a ida e volta nem sempre é simétrica. Recursos do XML como atributos, instruções de processamento, comentários, conteúdo misto e namespaces não têm equivalente direto em JSON. Converter XML para JSON e de volta para XML pode produzir um documento estruturalmente diferente. Se você precisar de conversão de XML para JSON, use um conversor dedicado que preserve atributos e namespaces.
Como lidar com chaves JSON que não são nomes válidos de elementos XML?
Nomes de elementos XML não podem começar com um dígito, conter espaços ou incluir a maioria dos caracteres especiais. Se seu JSON tiver uma chave como "2024-data" ou "primeiro nome", o conversor precisa sanitizá-la — tipicamente prefixando um sublinhado ou substituindo caracteres inválidos por sublinhados. Verifique a saída do conversor e ajuste os nomes de chave no JSON de origem se o XML resultante precisar passar pela validação XSD.
Qual é o tamanho máximo de JSON que esta ferramenta suporta?
O conversor roda no mecanismo JavaScript do seu navegador, então o limite prático depende da memória disponível. A maioria dos navegadores modernos lida com documentos JSON de até 50-100 MB sem problemas. Para arquivos maiores que isso, use um conversor de streaming como o xmltodict do Python ou uma ferramenta de linha de comando que processe os dados de forma incremental, em vez de carregá-los todos na memória.
A saída XML é bem formada ou válida?
A saída é sempre XML bem formado — as tags são adequadamente aninhadas, caracteres especiais são escapados e o documento possui um único elemento raiz. Se a saída é válida depende do esquema de destino (XSD ou DTD). A boa formação é uma garantia estrutural; a validade requer que os nomes de elemento, a ordem de aninhamento e os tipos de conteúdo correspondam a uma definição de esquema específica.