Ir al contenido principal
CuteJSON
↑↓ Navegar Enter Seleccionar Esc Cerrar

Como convertir JSON a XML con un mapeo declarado

Publicado 2 min de lectura Por Akash Kinkar Pandey

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 &amp; B &lt;co&gt;</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.

Volver a todas las entradas