Pular para o conteudo principal
CuteJSON
↑↓ Navegar Enter Selecionar Esc Fechar

Como converter JSON para XML com um mapeamento declarado

Publicado 2 min de leitura Por Akash Kinkar Pandey

Nao existe uma unica maneira correta de transformar JSON em XML. Os dois formatos nao modelam dados da mesma forma: XML tem atributos, conteudo misto e sem tipo de array nativo, nenhum dos quais JSON tem um equivalente. Esta ferramenta escolhe um mapeamento e o declara na pagina, em vez de fingir que existe um natural.

Usando o conversor JSON para XML

Escolha uma direcao e, ao escrever XML, um nome para o elemento raiz, ja que JSON nao tem nada que nomeie um documento como um elemento raiz XML faz. Convertendo

{"items":[{"name":"A & B <co>"},{"name":"C"}],"note":null}

com a raiz definida como catalog produz:

<catalog>
  <items>
    <name>A &amp; B &lt;co&gt;</name>
  </items>
  <items>
    <name>C</name>
  </items>
  <note/>
</catalog>

Um membro objeto se torna um elemento filho, um array se torna elementos irmãos repetidos que compartilham a chave do array como seu nome, e caracteres que nao sao legais dentro de texto XML, como & e <, sao escapados.

Atributos, texto e valores vazios

Uma chave com prefixo @ se torna um atributo XML ao escrever, e uma chave #text se torna texto ao lado de elementos filhos. Nem @ nem # e um caractere legal para iniciar o nome de um elemento XML, entao uma chave JSON nunca pode colidir com nenhuma convencao por acidente.

null, um objeto vazio, um array vazio e uma string vazia todos se tornam um elemento vazio, porque XML tem exatamente uma forma para nada e nao pode distinguir entre eles. Ler <note/> de volta retorna null para todos os quatro, o que a pagina declara claramente em vez de deixar voce descobrir.

Por que o leitor retorna cada valor como string

XML nao registra nenhuma informacao de tipo. Um numero em um documento XML e apenas digitos no que diz respeito ao formato, e adivinhar que deveria se tornar um numero JSON e exatamente o tipo de adivinha que transforma um CEP em um inteiro com seu zero a esquerda perdido. A leitura de volta permanece sem perda ao recusar adivinhar.

O que um nome de elemento repetido significa ao voltar

Um nome de elemento repetido sob o mesmo pai se torna um array JSON ao voltar, e um nome de membro que nao e um nome legal de elemento XML para a conversao e nomeia a chave ofensiva, em vez de silenciosamente altera-lo em algo que parece uma tag valida.

Voltar a todos os posts