A raiz sempre acrescenta um nível
Um objeto com uma única chave não é promovido automaticamente à raiz. Essa chave fica abaixo do nome escolhido. O nome dos itens vale em todos os níveis de arrays, então compare a estrutura com o receptor.
Ferramentas JSON
O exemplo inclui atributo, texto, array vazio e null. Confira cada caso antes de exportar.
Processamento neste navegador. A entrada não é enviada nem armazenada.
Resultado desatualizado; exportação desativada.
JSON para XML ajuda a levar dados de uma API para sistemas que recebem documentos. A escolha de nomes, atributos e namespaces depende do contrato de quem recebe, não apenas dos valores na entrada.
Aqui a raiz escolhida sempre envolve a entrada inteira, inclusive um valor isolado. As convenções ficam visíveis para comparar o resultado com o formato exigido pela integração.
JSON para XML mantém um contêiner com o nome do array e cria um elemento item para cada entrada. Um array vazio continua presente como contêiner vazio. Arrays aninhados mantêm seus níveis mesmo quando o nome dos itens muda.
@id vira atributo e #text fornece o texto do elemento. Os dois podem coexistir. Texto junto com elementos filhos é rejeitado, pois um objeto comum não descreve a ordem arbitrária de conteúdo misto.
Um objeto com uma única chave não é promovido automaticamente à raiz. Essa chave fica abaixo do nome escolhido. O nome dos itens vale em todos os níveis de arrays, então compare a estrutura com o receptor.
O padrão usa @ nos atributos e #text no texto, mas ambos podem ser alterados. Ao desligar o mapeamento, todas as chaves viram candidatas a nomes de elementos; as marcas restantes podem gerar erro.
A conversão automática espera 350 milissegundos. Desligue para executar pelo botão ou Ctrl/Cmd+Enter. Qualquer edição bloqueia a exportação imediatamente. A prévia mostra 50 nós por vez, até os 500 primeiros.
Raiz e itens exigem nomes locais válidos em XML 1.0. O URI do namespace padrão é declarado na raiz e aplicado aos elementos. Atributos sem prefixo não recebem esse namespace.
O padrão gera xsi:nil="true" e declara xsi automaticamente. A opção de rejeição para no primeiro null. Strings, objetos e arrays vazios geram elementos vazios presentes, sem excluir o campo.
9007199254740993, -0 e 1e999 mantêm os tokens de entrada, sem passar por números de ponto flutuante. Caracteres especiais são escapados; tabs e quebras em atributos usam referências para sobreviver à normalização XML.
Um parser independente verifica XML 1.0 e namespaces, e compara nomes, atributos e texto com a árvore esperada. Escolha dois espaços, quatro ou saída compacta, com declaração UTF-8 opcional.
Não de forma universal. O XML comum não distingue sozinho um número de uma string numérica, nem todos os casos de coleções vazias. Este conversor de JSON para XML preserva valores escritos e nós, mas não acrescenta um esquema de tipos reversível.
Sim. O array mantém seu contêiner e cada entrada vira um elemento com o nome escolhido. Arrays vazios permanecem e arrays aninhados mantêm os níveis. Ao converter JSON para XML, confirme se o receptor aceita esse contêiner adicional.
Sim. Sintaxe inválida e chaves duplicadas interrompem a conversão antes da saída. Depois, o conversor JSON XML verifica também o documento produzido. Um sucesso indica estrutura XML válida, não aprovação do contrato de negócio.
Os caracteres de marcação são escapados. Tabs e quebras de linha nos atributos usam referências de caracteres, e o retorno de carro no texto também é protegido. Caracteres que XML 1.0 proíbe são erros, nunca removidos silenciosamente.
É comum em integrações legadas ou serviços que recebem documentos XML a partir de dados de uma API. Defina primeiro a raiz, os nomes e o namespace. Converter a sintaxe não cria automaticamente um envelope SOAP nem adapta o conteúdo a um XSD.
Seu documento revelou um caso especial de mapeamento?
Use JSON para XML para revisar o exemplo e depois definir a raiz e o namespace esperados na integração.