XML para JSON
XML e JSON modelam dados de maneira diferente: XML tem atributos e conteúdo misto, JSON tem objetos e arrays. Converter sem perda requer uma convenção. Esta ferramenta oferece três: compacto (descarta atributos), Badgerfish (atributos sob @key, texto sob $) e literal (cada nó XML se torna um objeto JSON com total fidelidade). Escolha o que corresponde ao consumidor JSON que você está visando.
Como converter XML para JSON
-
1
Cole XML
Qualquer XML bem formado. Os namespaces são preservados.
-
2
Escolha o estilo de conversão
Compacto, Badgerfish ou literal/sem perda.
-
3
Trate arrays
Force certos elementos a serem sempre arrays (configurável).
-
4
Copie a saída JSON
Formatada ou minificada, sua escolha.
Os três estilos comparados
Entrada:
<book id="1" lang="en">
<title>1984</title>
<author>Orwell</author>
</book>
Compacto (descarta atributos):
{
"book": {
"title": "1984",
"author": "Orwell"
}
}
Badgerfish (atributos sob @, texto sob $):
{
"book": {
"@id": "1",
"@lang": "en",
"title": { "$": "1984" },
"author": { "$": "Orwell" }
}
}
Literal / JsonML-ish (total fidelidade):
{
"book": {
"@attributes": { "id": "1", "lang": "en" },
"title": "1984",
"author": "Orwell"
}
}
Arrays forçados
XML não tem como dizer “esta é uma lista de um”. Uma sequência de um único elemento parece idêntica a um escalar:
<items>
<item>A</item>
</items>
Isso pode ser serializado como {"item": "A"} ou {"item": ["A"]}. O conversor permite que você marque nomes de elementos (por XPath) como sempre-arrays, para que seu consumidor JSON downstream receba tipos consistentes.
Conteúdo misto
Conteúdo misto, texto intercalado com elementos filhos, é o único lugar onde qualquer conversão de XML para JSON perde informações:
<p>Olá <em>mundo</em>!</p>
A maioria dos estilos ou descarta texto ou o colapsa. O estilo literal preserva a ordem via um array:
{
"p": {
"@content": ["Olá ", { "em": "mundo" }, "!"]
}
}
Inferência de tipo
Por padrão, os valores são strings. Ative “analisar numérico/booleano” e o conversor irá converter 42, 3.14, true, false para os tipos JSON correspondentes. Tenha cuidado: um atributo XML id="007" se torna 7 com a conversão ativada, o que você provavelmente não deseja.
Quando escolher qual
- Compacto: para JSON legível por humanos onde atributos são ruído.
- Badgerfish: quando você precisa de atributos e texto na mesma profundidade que filhos.
- Literal: quando você deve retornar ao XML sem perda.
Perguntas frequentes
Quando um elemento aparece uma vez, o conversor padrão é objeto; duas ou mais vezes, array. Use a opção de forçar array para torná-lo consistente se seu consumidor esperar uma forma.
Os prefixos de namespace são preservados nas chaves (ns:title) a menos que você ative “remover namespaces”. As declarações se tornam atributos @xmlns:ns no elemento raiz.
O modo literal é o mais próximo do sem perda, mas a ordenação do conteúdo misto entre elementos e texto é complicada. O modo compacto definitivamente perde atributos. Badgerfish é um meio-termo pragmático.
Não. A conversão é feita no seu navegador.
Ferramentas relacionadas
Gerador de Cartão CSS
Crie o CSS de um contêiner de cartão: fundo, borda, raio dos cantos, espaçamento interno e sombra suave, com pré-visualização imediata e código para copiar e colar.
Referência da Tabela ASCII
Tabela ASCII completa de 0 a 127 com valores decimais, hexadecimais, octais e binários e notação de referência numérica HTML, incluindo NUL, LF e DEL.
Conversor de Tamanho de Arquivo
Converta entre bytes, KB, MB, GB, TB e as unidades binárias IEC (KiB, MiB, GiB, TiB), combinando decimal e binário como preferir.
Visualizador de Markdown
Escreva Markdown e veja a renderização HTML atualizar ao vivo. Sintaxe com estilo GitHub, incluindo tabelas, listas de tarefas, blocos de código cercados e autolinks.
Gerador de Docker Compose
Gere um docker-compose.yml a partir de definições de serviços com imagem, portas e volumes, com padrões de boas práticas.
Conversor de base numérica
Converta números entre binário, octal, decimal, hexadecimal e qualquer base personalizada de 2 a 36, com o detalhamento posicional.
Ferramenta disponível em outros idiomas
- XML zu JSON [DE]
- Chuyển đổi từ XML sang JSON [VI]
- XML till JSON [SV]
- แปลง XML เป็น JSON [TH]
- XML ke JSON [ID]
- XML → JSON [KO]
- XML a JSON [ES]
- XMLからJSONへ [JA]
- XML إلى JSON [AR]
- XML vers JSON [FR]
- XML naar JSON [NL]
- XML do JSON [PL]
- XML in JSON [IT]
- От XML к JSON [RU]
- XML'den JSON'a [TR]
- XML 转 JSON [ZH]
- XML to JSON [EN]