Altova XMLSpy 2024 Enterprise Edition 

Convertir instancia XML en instancia JSON/YAML y viceversa

Inicio Anterior Inicio Siguiente

Si el documento activo es un documento XML, este comando genera un documento JSON o YAML a partir del documento activo. Si, por el contrario, el documento activo es un archivo JSON o YAML, este comando genera un documento XML a partir del documento activo. El esquema resultante se abre inmediatamente en una ventana nueva y puede guardarse en cualquier ubicación del sistema de archivos. Más abajo describimos las opciones de conversión. Además, puede encontrar más información sobre las funciones de edición de datos JSON en la sección JSON y esquemas JSON. Para obtener más información sobre los datos YAML, consulte la sección YAML.

 

Ejemplos de conversión

A continuación puede ver un documento XML de partida y el documento JSON y YAML de salida que se obtiene con el comando Convertir instancia XML en instancia JSON/YAML y viceversa.

 

Documento XML

 

<?xml version="1.0" encoding="UTF-8"?>

<Person first="Jim" last="James">

 <Address>

   <street>4 New Street</street>

   <city>New York</city>

   <state>NY</state>

   <code>10123</code>

 </Address>

 <Tel type="home">

     123 123-1234

 </Tel>

 <Tel type="office">

     123 987-9876

 </Tel>

</Person>

 

Para convertir un documento XML en JSON o YAML, el documento XML debe ser el documento activo en la vista antes de que se ejecute el comando Convertir instancia XML en instancia JSON/YAML y viceversa.

 

Documento JSON

 

{

 "XML": {

         "version": 1,0,

         "encoding": "UTF-8"

 },

 "Person": {

         "first": "Jim",

         "last": "James",

         "Address": {

                 "street": "4 New Street",

                 "city": "New York",

                 "state": "NY",

                 "code": 10123

         },

         "Tel": [ { "type": "home",

                 "Text": "\      123 123-1234\  "}, { "type": "office",

                 "Text": "\      123 987-9876\  "} ]

 }

}

 

 

Para convertir un documento JSON en XML, el documento JSON debe ser el documento activo en la vista antes de que se ejecute el comando Convertir instancia XML en instancia JSON/YAML y viceversa.

 

Documento YAML

 

Person:

   "@first": Jim

   "@last": James

   Address:

       street: 4 New Street

       city: New York

       state: NY

       code: "10123"

   Tel:

       -   "@type": home

           $: |

           

                 123 123-1234

             

       -   "@type": office

           $: |

           

                 123 987-9876

 

 

Para convertir un documento YAML en XML, el documento YAML debe ser el documento activo en la vista antes de que se ejecute el comando Convertir instancia XML en instancia JSON/YAML y viceversa.

 

Opciones de conversión de datos XML en JSON

Cuando se invoca el comando Convertir instancia XML en instancia JSON/YAML y viceversa para convertir un documento XML en un documento JSON o YAML, aparece el cuadro de diálogo "Convertir XML en JSON/YAML" (imagen siguiente). Puede seleccionar si el destino de la conversión es el formato JSON, JSON5, JSON Comments (Comentarios JSON) o YAML. Después configure las opciones de conversión y haga clic en Aceptar. XMLSpy generará un documento de instancia JSON o YAML a partir de la instancia XML que se abrirá inmediatamente en una ventana nueva.

JSONConvertXMLInstance2JSON

Con la dos primeras opciones puede indicar si se añaden prefijos o no a los nombres de propiedad JSON/YAML para evitar conflictos con elementos que estén en el mismo nivel. Esto puede verse bien en el ejemplo de código que aparece a continuación. Observe que el atributo XML somenode se convirtió en la propiedad JSON @somenode. Gracias al prefijo @ se evita un conflicto con la propiedad JSON somenode (generada a partir del elemento XML somenode).

 

Instancia XML

 

<root somenode="value">

   <somenode>content</somenode>

</root>

 

 

Instancia JSON

 

{

   "root": {

       "@somenode": "value",

       "somenode": "content"

   }

}

 

 

Las demás opciones del cuadro de diálogo sirven para especificar si determinados tipos de nodos XML se convierten o no. Si se convierten, los comentarios XML reciben el nombre "#". Los nodos de  texto (que suelen aparecer dentro de elementos con contenido mixto) reciben el nombre "$". Si un nodo XML tiene un prefijo de espacio de nombres, el nombre JSON/YAML correspondiente se creará con este prefijo de espacio de nombres. Si en el mismo nivel hay elementos con nombres idénticos, se considerará que son componentes iguales. Asimismo, los nodos como comentarios, instrucciones de procesamiento y text() situados en el mismo nivel se consideran componentes iguales. Si en el mismo nivel hay componentes iguales, podrá elegir si XMLSpy crea una matriz con ellos o no. Es decir, en el cuadro de diálogo puede indicar si se crea una matriz con todos los componentes iguales, si se crea con los componentes iguales que sean vecinos o si no se crea ninguna matriz.

 

La opción Usar tipo del esquema XML permite hacer conversiones basándose en el tipo del esquema XML del nodo de origen. Por ejemplo, si un nodo está definido como de tipo xs:string, entonces la propiedad destino del objeto JSON será de tipo string y estará entre comillas. Esta opción es útil si, por ejemplo, un número está almacenado como cadena en el nodo XML de origen y la conversión en JSON debe ser fiel en cuanto a los tipos.

 

Opciones de conversión de datos JSON/YAML en XML

Cuando se invoca el comando Convertir instancia XML en instancia JSON/YAML y viceversa para convertir una instancia JSON o YAML en un documento XML, aparece el cuadro de diálogo "Convertir JSON en XML" (imagen siguiente). Configure aquí las opciones de conversión y haga clic en Aceptar. XMLSpy generará un documento de instancia XML a partir de la instancia JSON o YAML que se abrirá inmediatamente en una ventana nueva.

JSONConvertJSONInstance2XML

Tenga en cuenta estos aspectos:

 

Las propiedades de objetos JSON/YAML se convierten en elementos XML. Las primeras cuatro opciones de diálogo permiten elegir qué tipo de propiedades se convierten y cuáles no.

Codificar signos de dos puntos en los nombres de propiedad: si marca esta casilla, los dos puntos de los nombres JSON/YAML se codifican y no se convierten como dos puntos. Si no marca esta casilla, los dos puntos se dejan como están.

Conservar información sobre tipo de valor JSON: si marca esta casilla, la información de tipo JSON de las propiedades se convierte en un par atributo-valor del elemento correspondiente.

Crear elemento contenedor para cada matriz JSON: Los elementos de la matriz JSON se convierten en elementos XML dentro de este contenedor y cada uno de los elementos recibe el nombre que se especifique en el cuadro de texto. Los elementos de la matriz JSON se crean como elementos XML dentro de este contenedor. Cada uno recibe el nombre que especifique en el cuadro de texto Nombre del elemento de la matriz.

 

© 2018-2024 Altova GmbH