Cómo consultar una base de datos y escribir la información en un archivo JSON

Posted on October 4, 2022
Text

GoAnywhere MFT puede conectarse con servicios web RESTful para transferir o manipular archivos JSON y otros formatos. Conozca más sobre JSON y servicios web RESTful.

En este tutorial aprenderá cómo consultar en dos tablas de una base de datos, unir la información con una expresión condicional, y escribir los datos en un archivo JSON. Ese archivo luego puede importarse hacia otros sistemas, o los datos pueden publicarse en una llamada de Servicio Web a través de REST.

Image
Write JSON

JSON

Text

JSON es el diminutivo de JavaScript Object Notation (notación de objeto de JavaScript). Los datos en formato JSON se representan de forma lógica, organizada y de fácil acceso. JSON puede contener múltiples niveles de objetos, arrays, y datos de campo que pueden ser analizados por GoAnywhere MFT.

Crear un nuevo proyecto

Text

El primer paso es crear un nuevo proyecto. Si no sabe cómo hacerlo, puede ver este tutorial

Project Designer – The SQL Task (Diseñador de Proyectos – Tarea SQL)

Text

Luego, desde Project Designer, expanda la función Database y arrastre la tarea SQL al diseño del proyecto (Project Outline)

Image
SQL Task
Text

En la tarea SQL dirígase a Database Server y seleccione el recurso en el menú desplegable.

Image
SQL Task
Text

Haga click en el botón Add para agregar una query a la tarea SQL. La tabla "Orders" de la base de datos será consultada primero.

En el campo SQL Statement escriba la consulta SQL. De forma alternativa, puede usar la herramienta SQL Wizard para crear las consultas más rápidamente. Con SQL Wizard puede elegir esquemas (librerías), tablas (archivos físicos), columnas (campos), encabezados de columnas, cláusulas “where” y criterios “order by”. Para acceder al SQL Wizard para crear una consulta SELECT, haga click en el ícono de navegación ubicado a la derecha del campo SQL Statement. Consulte el tutorial de SQL Wizard para más información.

Image
SQL Statement for the Orders Table
Text

La siguiente tabla muestra la información que contiene la variable llamada “orders” en el RowSet. La variable, junto con la anotación indexada, como por ejemplo ${orders[1]}, se usa para completar el campo de datos JSON en los pasos subsiguientes.

Image
Contents of the 'orders' RowSet Variable
Text

Al volver a la tarea SQL agregue una segunda query para la tabla "customers" de la base de datos.

Image
SQL Statement for the Customers Table
Text

La siguiente tabla muestra los datos que contiene la variable “customers” en el RowSet.

Image
Contents of the 'customers' RowSet Variable
Contents of the 'customers' RowSet Variable

Project Designer – Tarea "Write JSON" (escribir en JSON)

Text

Desde el Project Designer, vaya a la librería de funciones y expanda la función Data Translation (traducción de datos). Acto seguido arrastre la tarea Write JSON al proyecto que está diseñando.

Image
Write JSON Task
Text

En la tarea Write JSON, especifique los siguientes campos:

  • Output File - Ruta y nombre de archivo del archivo JSON a escribir.
  • Tidy Output – Cuando se selecciona la opción ‘true’, el archivo JSON será formateado con sangría estándar entre objetos, arrays y campos.

 

Image
Write JSON Task Attributes
Text

En la Ventana de la tarea Write JSON haga click en el botón Add del sub-menú y seleccione Object.

Image
Add New Object
Text

En el elemento Object especifique un valor para los siguientes atributos:

    • Name - Especifique el nombre de este objeto. Si no es el nodo hijo de un objeto, el nombre se usa como referencia dentro del diseño del proyecto (Project Outline). Si este objeto está definido como el nodo hijo de otro objecto, el nombre se usa como nombre del campo en el archivo JSON. En este ejemplo, el objeto no es el nodo hijo de otro objeto, por lo tanto el valor en el campo Name se usa solo como referencia en el diseño del proyecto y no se usa en el archivo JSON. Una llave abierta “{” es especificada en el elemento para que sea más sencillo identificar el comienzo de este objeto en el diseño del proyecto. La llave de cierre se inserta automáticamente para el usuario a la salida. Aquí está el output final de un archivo JSON como referencia:
Image
Object Element Attributes
En el elemento Object especifique un valor para los siguientes atributos
Text

En el elemento Object haga click en el botón del sub-menú Add y seleccione Array. El elemento Array recorre cada fila dentro de una variable del RowSet. En términos de JSON, un Array añadirá a sus datos una estructura de corchetes [ … ].

En el elemento Array, especifique el valor de Input RowSet Variable

    • Name - Este array es el nodo hijo de un objeto y se usa como una etiqueta de campo dentro del archivo JSON. El primer array en nuestro output de JSON va a contener datos de las tablas de la base de datos “orders”, por lo tanto llamaremos a este array “order”.
    • Input RowSet Variable - El nombre de una variable que contiene los datos del RowSet para escribir un archivo. Por ejemplo, desde la tarea SQL usamos orders como la variable output por lo tanto ${orders} va aquí a ser utilizado como un input.
Image
Array Element Attributes
Text

Este array va a contener múltiples objetos. En el elemento Write Array, haga click en el botón Add del sub-menú, y a continuación seleccione Object.

En el elemento Object, especifique un nombre (Name). En este ejemplo, una llave abierta “{” se especifica en el elemento para que sea más fácil identificar el comienzo de este Object en el Diseño del Proyecto (Project Outline).

Image
Object Element Attributes
Object Element Attributes
Text

En el elemento Object, haga click en el botón Add del sub-menú, y a continuación seleccione Field.

En el elemento Field, especifique los siguientes campos:

    • Name - Especifique el campo "name" como aparecerá en el archivo JSON de salida.
    • Value - Especifique el valor en este campo. Este puede expresarse con una combinación de valores constantes y referencias de columnas en el RowSet. Por ejemplo, ${orders[1]}, en donde orders es el nombre de la variable del RowSet y [1] es el índice de la columna. Solo Rowsets que están en uso por una Array principal pueden ser usados. Vea la consulta SQL en la tarea Query para saber el orden correcto de columna.
Image
Field Element Attributes
Text

Si necesita, añada campos adicionales, desde el link Add del sub-menú con la opción Add Same. Siga el mismo proceso de aquí arriba, y especifique el nombre de campo que aparecerá en el archivo de salida junto con el índice de columna apropiado de la variable del RowSet.

Haga click en el botón Save cuando termine. La siguiente imagen ilustra cómo va el diseño del proyecto hasta aquí:

Image
Write JSON Project Outline
Text

El proceso de crear el segundo array con datos de la variable del RowSet ${customers} es el mismo. Seleccione el elemento Object de la acción Array: orders. Haga click en el botón Add y seleccione Array. Nombre a este array “customers” y especifique la variable del RowSet ${customers} en el campo Input RowSet Variable.

Image
Add Array
Text

Añada el objeto que va a contener los campos del cliente. Seleccione el array de clientes, haga click en el botón Add y seleccione Object. Si quiere unir datos de ambas tablas usando un “custid” como un calificador, añada una expresión condicional al nuevo elemento Object.

Image
Object Condition Statement
Text

Siga el mismo proceso diseñado previamente al añadir campos al array de clientes con datos de la variable del RowSet ${customers}.

Image
Write JSON Project Outline
Text

La siguiente imagen muestra el archivo JSON creado desde la tarea Write JSON:

Image
JSON File Output

Mejor sus procesos con archivos JSON con GoAnywhere MFT

¿Necesita convertir datos de bases de datos, archivos planos, Excel, CSV o XML a formato JSON? Descargue una prueba gratuita de GoAnywhere MFT y compruebe usted mismo cómo nuestra herramienta de automatización puede ahorrarle tiempo y dinero.

Comience su prueba gratuita por 30 días