Conversor de JSON para XML
Cole JSON à esquerda, obtenha XML bem formado à direita. Chaves com prefixo @_ se tornam atributos. Sem upload.
- Cole JSON na área de texto à esquerda.
- Clique em "Converter para XML". Chaves JSON viram elementos; @_chaves viram atributos.
- Copie ou baixe o XML formatado.
- Envolva seus dados com uma única chave raiz — XML exige um elemento de nível superior.
O que ele faz?
Converte um objeto JSON em XML usando a convenção do fast-xml-parser. Propriedades de objeto viram elementos filhos; propriedades com prefixo `@_` viram atributos no pai; arrays viram elementos irmãos repetidos com a mesma tag. Números, booleanos e strings são emitidos como conteúdo de texto. A saída é indentada para legibilidade.
Exemplo
Entrada JSON:
{
"root": {
"@_version": 1,
"name": "Ada",
"tags": ["math", "logic"]
}
} Saída XML:
<root version="1">
<name>Ada</name>
<tags>math</tags>
<tags>logic</tags>
</root> Armadilhas comuns de JSON para XML
XML é mais estrito que JSON quanto à estrutura. Os padrões abaixo cobrem a maior parte das saídas surpreendentes.
- Sem raiz única. XML requer exatamente um elemento raiz. Objetos JSON com várias chaves de nível superior produzem várias raízes, o que é XML inválido. Envolva seu input em uma única chave: `{"root": {"a":1, "b":2}}`.
- Array de nível superior. Um array JSON `[{"a":1},{"a":2}]` não tem nome de elemento raiz para usar. Envolva: `{"items": [{"a":1},{"a":2}]}`. Cada entrada do array vira então um elemento `<items>`.
- Nomes de elementos com espaços ou símbolos. Nomes de elementos XML não podem conter espaços, começar com dígito, nem conter `:`, `/`, `<` etc. Sanitize as chaves JSON antes de converter — substitua espaços por `_`, prefixe dígitos com letra.
- Atributos vs. elementos. Uma chave JSON `id` vira um elemento filho `<id>1</id>`. Para virar atributo (`<user id="1">`), prefixe com `@_`: `{"user":{"@_id":1}}`. O prefixo é removido na saída.
- Valores null. JSON `null` vira elemento vazio (`<x/>`). Se precisa omiti-lo totalmente, remova valores null do seu JSON antes de converter.
- Caracteres especiais no texto. XML escapa `<`, `>`, `&`, `"` e `\'` automaticamente. Sua string JSON `"<b>hi</b>"` vira o texto `<b>hi</b>`, não elementos aninhados. Use estrutura JSON intermediária se quiser aninhamento real.
Perguntas frequentes
Como obter uma declaração XML `<?xml version="1.0"?>`?
Anteponha você mesmo à saída — o conversor não emite declaração. Para XML UTF-8, a declaração é tecnicamente opcional mas comumente incluída: `<?xml version="1.0" encoding="UTF-8"?>` seguido do seu XML convertido.
Arrays JSON são preservados como elementos repetidos?
Sim. `{"tags":["a","b"]}` vira `<tags>a</tags><tags>b</tags>` — dois irmãos com a mesma tag, que é a representação XML padrão de valor repetido.
Posso ter arrays aninhados estilo JSON em XML?
Não diretamente. XML não tem conceito nativo de array; só irmãos repetidos. Arrays aninhados em JSON viram uma estrutura XML mais plana onde o contexto determina o agrupamento. Round-trip XML → JSON → XML por esta ferramenta preserva o subconjunto round-trippable.
Como datas são tratadas?
JSON não tem tipo Date — datas geralmente já são strings ISO 8601. Estas viram conteúdo de texto do elemento sem alteração. Se seu XML a jusante espera um formato específico, garanta que o JSON use esse formato.
Meu JSON é enviado para algum lugar?
Não. Tudo roda no seu navegador — sua entrada é parseada e convertida por JavaScript nesta página e nunca enviada a servidor.
O round-trip JSON → XML → JSON preservará meus dados?
Para dados estruturados típicos com a convenção de atributo @_, sim — semanticamente. Alguns casos extremos (texto + elementos filhos misturados, ordem de atributos vs. ordem de elementos) podem normalizar. Se equivalência exata byte-a-byte importa, não faça round-trip por XML.