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

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.

Write Illustration

JSON

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

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)

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

Tarea SQL

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

Tarea SQL

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.

SQL Statement

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.

Contents of the 'orders' RowSet Variable

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

SQL Statement

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

Contents of the 'customers' RowSet Variable

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

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.

Write JSON Task

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.

Write JSON Task Attributes

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

Add New Object

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:

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.

Array Element Attributes

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).

Atributos del elemento Object

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.

Atributos del elemento Field

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í:

Write JSON Project Outline

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.

Add Array

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.

Object Condition Statement

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

Write JSON Project Outline

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

JSON File Output

Descargue una prueba gratuita

¿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.

Previous Tutorial
Insert JSON into a Database

Next Tutorial
Using the SQL Wizard