JSON para XML
Converta JSON em XML equivalente, com atributos e arrays tratados de forma sensata.
- Roda no seu navegador — nada do que você digita é enviado
- Sem cadastro, sem cotas, grátis para usar quantas vezes quiser
Como funciona
JSON e XML conseguem expressar quase as mesmas coisas, mas não do mesmo jeito, então qualquer conversão envolve algumas decisões. Esta ferramenta toma as mais comuns e informa quais foram.
Arrays viram elementos repetidos
O XML não tem um tipo lista. A convenção padrão é repetir o elemento uma vez por item, então um array de três livros vira três elementos <book> lado a lado. É o que quase todo consumidor de XML espera e é o que esta ferramenta produz.
Atributos
O XML distingue atributos de elementos filhos; o JSON não tem equivalente. A convenção mais usada é colocar @ antes de uma chave para indicar que ela deve virar um atributo, e é a que seguimos aqui — ela pode ser desativada se suas chaves realmente começarem com @.
Os nomes são tornados válidos
Nomes de elementos XML não podem conter espaços nem a maioria dos sinais de pontuação e não podem começar com um dígito. As chaves que quebrariam essas regras têm os caracteres inválidos substituídos por sublinhados e, quando necessário, ganham um sublinhado no início. Sem isso, a saída não seria analisável.
Valores nulos
Um null vira um elemento vazio marcado com xsi:nil, que é a forma convencional de dizer deliberadamente vazio, e não ausente. Se o seu consumidor não entende xsi:nil, um elemento vazio normalmente é lido da mesma forma.
A ida e volta não é exata
O JSON distingue o número 42 da string "42", e o XML não — tudo no XML é texto, a menos que um esquema diga o contrário. Converter de volta não restaura os tipos originais de forma confiável.
JSON para XML — perguntas
Como os arrays são tratados?
Como elementos repetidos, que é a convenção padrão do XML, já que o XML não tem um tipo lista.
Posso gerar atributos?
Sim. Coloque @ antes de uma chave e ela vira um atributo; esse comportamento pode ser desativado.
O que acontece com chaves que têm espaços?
Os caracteres inválidos viram sublinhados, porque nomes XML não podem contê-los. Sem isso, a saída não seria analisável.
Posso converter de volta para JSON?
Sim, com a ferramenta XML para JSON, mas os tipos não são preservados — o XML não tem a noção de número versus string.
Meus dados são enviados?
Não. A conversão é feita no seu navegador.