Saltearse al contenido

JSON to Data

JSON to Data

El componente JSON to Data es una herramienta esencial en tu flujo de trabajo dentro de Nappai. Su función principal es actuar como un “traductor” o adaptador: toma información en formato JSON (una estructura de datos común utilizada por aplicaciones y APIs) y la convierte en un objeto de datos estructurado.

Este objeto resultante es mucho más fácil de manejar para los siguientes pasos de tu automatización, permitiendo que otros componentes realicen filtros, búsquedas o visualizaciones gráficas de manera eficiente. Imagina que recibes una caja llena de piezas desordenadas (el JSON crudo) y este componente las organiza en un estante limpio y numerado (el Data Object) para que puedas usarlas rápidamente.

¿Cómo funciona?

Internamente, este componente no requiere conexiones complejas con servidores externos ni procesos de carga pesados. Funciona de forma local y rápida dentro de tu flujo de automatización:

  1. Recepción de Datos: El componente está diseñado para recibir información de dos maneras principales, dependiendo de cómo la estés suministrando a tu flujo de trabajo (ver sección “Entradas” más abajo).
  2. Validación y Parseo: Una vez recibida la información, el componente verifica que el formato sea correcto (es decir, que sea un JSON válido y no tenga errores de sintaxis). Si has escrito el texto manualmente, se asegura de que las comillas y llaves estén cerradas correctamente.
  3. Estructuración: Transforma esa información cruda en un formato tabular o de registros (un Data Object). Esto significa que organiza las claves y valores del JSON en filas y columnas lógicas.
  4. Salida Lista: Entregas un objeto listo para ser conectado a otros componentes, como filtros de datos, gráficos o bases de datos internas de Nappai.

No necesitas configurar credenciales (como contraseñas o claves API) para usar este componente, ya que trabaja únicamente con los datos que tú le proporcionas directamente en el flujo.

Entradas

Este componente cuenta con un Modo de Mapeo (Mapping Mode) avanzado. Cuando activas este interruptor, cada campo de entrada te ofrece tres formas flexibles de proporcionar datos:

  • Fixed (Fijo): Escribes el valor directamente en el campo (por ejemplo, un texto estático).
  • Mapped (Mapeado): Conectas la salida de otro componente anterior para usar su resultado dinámicamente como valor.
  • Javascript: Escribes un pequeño script en Javascript para calcular el valor al momento de la ejecución.

Esta flexibilidad te permite crear flujos de trabajo inteligentes y dinámicos. A continuación, se describen los campos disponibles:

Campos de Entrada

Los siguientes campos están disponibles para configurar este componente. Asegúrate de usar al menos uno de ellos para que el componente tenga datos con los que trabajar.

  • JSON: Contiene el diccionario JSON como entrada directa. Debes conectar la salida de otro componente que genere un objeto o diccionario JSON.

    • Visible en: Todas las operaciones
  • JSON Text: Te permite escribir el contenido JSON manualmente línea por línea en el campo de texto. Útil para pruebas rápidas o cuando tienes un código JSON fijo que no viene de otro componente.

    • Visible en: Todas las operaciones
  • Mode: Un selector desplegable que determina cómo el componente interpretará las entradas anteriores. Elige entre conectar un diccionario JSON (Data Entry) o trabajar con el texto escrito manualmente (Manual Entry).

    • Visible en: Todas las operaciones

Salidas

El componente produce un resultado principal listo para ser utilizado por el resto de tu automatización.

  • Data: Este es el objeto de datos estructurado resultante. Una vez generado, puedes conectar este campo a la entrada de otros componentes como Filtros, Agregadores, Visualizaciones de Gráficos o Escritura en Bases de Datos. Es la información “limpia” y organizada de tu flujo.

Ejemplo de Respuesta JSON

Cuando el componente JSON to Data procesa con éxito un JSON simple como {"name": "Nappai", "version": "1.0"}, la salida Data resultante se verá estructuralmente similar a la siguiente tabla de registros. En tu flujo de trabajo, podrás acceder a los valores “Nappai” y “1.0” mediante sus respectivas columnas o claves. json { “rows”: [ { “name”: “Nappai”, “version”: “1.0” } ], “metadata”: { “record_count”: 1, “columns”: [“name”, “version”] } }

Conectividad

Este componente se encuentra típicamente en la fase inicial de un flujo de trabajo relacionado con el manejo de datos (ETL - Extract, Transform, Load).

  • Entradas: Se conecta comúnmente a componentes que extraen datos, como API Get, Webhooks, o componentes de Base de Datos que devuelven resultados en formato JSON.
  • Salidas: La salida Data fluye hacia componentes que necesitan interpretar esa estructura, como:
    • Filters: Para filtrar registros específicos basados en las claves del JSON.
    • Charts/Graphs: Para visualizar la información en dashboards.
    • Database Writer: Para guardar los datos procesados en un formato tabular permanente.

Tiene sentido lógico conectar este nodo justo después de recibir una respuesta de una API externa o antes de intentar analizar o graficar información.

Ejemplo de Uso

Escenario: Quieres automatizar la recopilación de datos de una API de clima y mostrar una alerta si hace frío.

  1. Usas un componente HTTP Request para llamar a una API de clima. Este devuelve la respuesta en formato JSON.
  2. Conectas la salida de HTTP Request a la entrada JSON del componente JSON to Data.
  3. El componente JSON to Data convierte esa respuesta cruda en un objeto de datos estructurado.
  4. Conectas la salida Data del componente JSON to Data a un componente Filter.
  5. En el filtro, configuras una condición para ver si la temperatura es menor a 10 grados.
  6. Si cumple la condición, el flujo continúa hacia un componente de Notificación de Email.

Sin el componente JSON to Data, el componente Filter no podría entender la estructura interna del JSON crudo para realizar la comparación.

Consideraciones de Seguridad

  • Validación de Entradas: Asegúrate de que el JSON ingresado provenga de fuentes confiables o esté correctamente validado por componentes anteriores. Aunque el componente maneja errores de sintaxis, inyecciones de datos maliciosos en las estructuras pueden afectar el flujo posterior si no se validan los tipos de datos esperados.
  • Límites de Datos: En flujos con volúmenes muy grandes de datos JSON, el proceso de conversión puede consumir más recursos de memoria. Si experimentas lentitud, considera agregar un componente de Limit Rows o Filter antes de este nodo para reducir el tamaño del conjunto de datos.