Ferramentas JSON

XML para JSONconfira o papel e a posição de cada nó

Compare o exemplo de itens repetidos com o exemplo de texto misturado a elementos.

XML para JSON

JSON para XML

Entrada XML

Resultado JSON

Processamento neste navegador. A entrada não é enviada nem armazenada.

Opções de saída

Atributos e nomes qualificados são mantidos. Os valores continuam strings.

Resultado desatualizado; exportação desativada.

XML para JSON ajuda a aproveitar uma resposta XML em um script ou serviço que espera objetos. Mas uma tag não informa se 001 é um número ou um identificador, nem se um filho único deve ser uma lista.

Este conversor oferece dois modelos ao converter XML para JSON: objetos compactos para registros e conteúdo ordenado para documentos. A escolha precisa combinar com o formato aceito pelo sistema de destino.

Por que usar XML para JSON aqui?

Um array mesmo quando sobra um item

XML para JSON agrupa filhos adjacentes com o mesmo nome em arrays. Ative a opção de arrays para todos os filhos quando o consumidor espera uma lista mesmo com um item. A raiz continua uma propriedade externa.

Um item e dois itens entram em recipientes de array separados, mantendo a forma de lista.

Texto e elementos na sequência certa

O modelo compacto recusa texto misto e sequências a,b,a. O modo ordenado coloca texto e elementos no mesmo array content, sem reorganizar silenciosamente as posições para agrupar nomes.

Texto, elemento e texto seguinte entram no array de conteúdo na sequência original.

Escolhas que vale conferir antes de exportar

01

Compare o exemplo misto

O exemplo inicial funciona como objetos compactos. O misto mostra um erro nesse modo; mude para conteúdo ordenado e confira os nós de content antes de enviar a estrutura ao consumidor.

02

Identifique os espaços relevantes

O texto de folhas nunca passa por trim. Por padrão só se omitem espaços de formatação entre elementos. xml:space="preserve" é herdado e tem prioridade; manter todos os espaços pode exigir o modelo ordenado.

03

Faça várias mudanças no modo manual

A conversão automática aguarda 350 ms. Desative-a para usar Converter ou Ctrl/Cmd+Enter. Alterar entrada ou opções bloqueia imediatamente a cópia e o download do resultado antigo até uma nova conversão bem-sucedida.

Mapeamento explícito do documento

Atributos e nomes qualificados

No modelo compacto, @id é um atributo e #text guarda o texto de uma folha com atributos. Prefixos e declarações xmlns são mantidos. Elementos ordenados também exibem o namespaceURI resolvido.

Nós com tipos próprios

O conteúdo ordenado distingue elementos, texto, CDATA, comentários e instruções de processamento. A declaração XML fica em metadados separados. O compacto une valores CDATA ao texto, mas recusa comentários e instruções.

Strings continuam strings

001, 12.00, true e inteiros grandes permanecem strings. Elementos vazios viram strings vazias no modo compacto. Não se inferem números, booleanos ou null sem um esquema que defina o significado de cada campo.

O que a conversão não promete

XML 1.0 estrito com uma raiz
É necessário um documento bem-formado. Qualquer DOCTYPE é recusado, incluindo declarações internas de entidades. Entidades externas, XInclude e endereços de esquema não são buscados nem expandidos. Não há reparo de tags ou atributos inválidos. Somente declarações de codificação UTF-8 ou UTF8 são aceitas.
Modelo compacto tem limites de ordem
Texto misto, repetições intercaladas, comentários e instruções impedem a saída compacta, inclusive fora da raiz. Para manter espaços anteriores ou posteriores à raiz, também use conteúdo ordenado em vez de apagar partes do documento.
A escrita original não é arquivada
As regras XML normalizam quebras de linha e espaços em atributos e resolvem referências de caracteres. O compacto omite a declaração e limites CDATA. Não há remoção de prefixos, validação XSD ou garantia de ida e volta byte a byte.
Um texto com limites definidos
Máximos: 500.000 caracteres de entrada, profundidade 100, 50.000 nós e atributos e 2.000.000 caracteres de saída. Sem importação de arquivos, URL, lotes ou histórico. O link inverso abre outra ferramenta sem transferir dados.

Dúvidas sobre XML para JSON

A transformação permite recuperar exatamente o XML?

Não exatamente. XML para JSON preserva os valores analisados e, no modo ordenado, os tipos e a ordem dos nós. Aspas, referências de caracteres e certas formas de espaço são normalizadas pelo XML, portanto não é um arquivo da escrita original.

Onde encontro os atributos no resultado?

No modo compacto os atributos recebem @ antes do nome. A folha com atributos usa #text para seu texto. No modo ordenado, attributes contém os nomes qualificados e valores. Um filho de mesmo nome não sobrescreve o atributo.

Existe um limite para o tamanho da entrada?

São aceitos até 500.000 caracteres, contados como texto. Há também limites de profundidade, nós e saída gerada. Este conversor XML para JSON online pode recusar um documento pequeno, mas muito profundo antes de atingir o limite de entrada.

Como converter seções CDATA?

O modo compacto incorpora o valor CDATA ao texto comum. No conteúdo ordenado, cada seção permanece um nó do tipo cdata. Assim você consegue distinguir a seção sem prometer recuperar as mesmas aspas ou bytes do arquivo.

É permitido colar vários elementos raiz?

Não. Um documento XML precisa de uma única raiz. Vários elementos de topo causam erro de sintaxe. Defina por conta própria um contêiner adequado ao seu contrato; a ferramenta não junta documentos nem inventa uma raiz.

Ficou alguma dúvida?

Confira o próximo documento

Use XML para JSON para revisar atributos e listas do exemplo e escolher um modelo aceito pela aplicação de destino.