No hay una unica manera correcta de convertir JSON a XML. Los dos formatos no modelan datos de la misma manera: XML tiene atributos, contenido mixto y sin tipo de array nativo, ninguno de los cuales JSON tiene un equivalente. Esta herramienta elige un mapeo y lo declara en la pagina, en vez de fingir que existe uno natural.
Usando el convertidor JSON a XML
Elige una direccion y, al escribir XML, un nombre para el elemento raiz, ya que JSON no tiene nada que nombre un documento como lo hace un elemento raiz XML. Convirtiendo
{"items":[{"name":"A & B <co>"},{"name":"C"}],"note":null}
con la raiz establecida en catalog produce:
<catalog>
<items>
<name>A & B <co></name>
</items>
<items>
<name>C</name>
</items>
<note/>
</catalog>
Un miembro de objeto se convierte en un elemento hijo, un array se convierte
en elementos hermanos repetidos que comparten la clave del array como su
nombre, y caracteres que no son legales dentro del texto XML, como & y
<, se escapan.
Atributos, texto y valores vacios
Una clave con prefijo @ se convierte en un atributo XML al escribir, y
una clave #text se convierte en texto al lado de elementos hijos. Ni @
ni # es un caracter legal para iniciar el nombre de un elemento XML, asi
que una clave JSON simple nunca puede colisionar con ninguna convencion
por accidente.
null, un objeto vacio, un array vacio y una cadena vacia todos se convierten
en un elemento vacio, porque XML tiene exactamente una forma para nada y no
puede distinguir entre ellos. Leer <note/> de vuelta por lo tanto retorna
null para los cuatro, lo cual la pagina declara claramente en vez de
dejarte descubrirlo.
Por que el lector retorna cada valor como una cadena
XML no registra informacion de tipo en absoluto. Un numero en un documento XML es solo digitos por lo que respecta al formato, y adivinar que deberia convertirse en un numero JSON es exactamente el tipo de adivinanza que convierte un codigo postal en un entero con su cero inicial perdido. Leer de vuelta se mantiene sin perdida al rechazar adivinar.
Que significa un nombre de elemento repetido al volver
Un nombre de elemento repetido bajo el mismo padre se convierte en un array JSON al volver, y un nombre de miembro que no es un nombre legal de elemento XML detiene la conversion y nombra la clave ofensiva, en vez de modificarla silenciosamente en algo que parece una etiqueta valida.