Skip to main content

JSON to Table v.2

JSON to Table v.2 | Sybot Documentation

JSON to Table v.2

  • Task type: json-to-table_v2

Descrizione

Il task "JSON to Table v.2" consente di importare un oggetto JSON con struttura tabellare direttamente in una tabella di un database supportato. Il task gestisce la creazione della tabella o l'inserimento dei dati in tabelle già esistenti.

1. Connessione database

Tabella target

Seleziona l'origine della configurazione:

  • Manuale: per inserire i dati di connessione campo per campo.
  • Environment: per utilizzare un ambiente di connessione preconfigurato nel sistema.

Connessione Environment

Menu dropdown per selezionare l'ambiente desiderato (es. SqlServer_TEST). I parametri di autenticazione vengono popolati automaticamente.

Input Dataset

Campo per definire la sorgente dati:

  • Deve contenere il JSON da processare.
  • Si possono utilizzare i parametri dinamici per collegare l'output di task precedenti (es. #>JSON print.result<#).

Tipologia Database

Seleziona il DBMS di destinazione tra PostgreSQL, SQLserver, MySQL, Oracle.

Connessione SSL

Indica se abilitare la connessione sicura (SI / NO).

Autenticazione

Se in modalità Manuale, compila i campi: Host, Porta, Nome DB, User e Password.

2. Gestione tabella

Azione Tabella Target

  • Crea tabella: genera una nuova tabella nel database.
  • Tabella Esistente: inserisce i dati in una tabella esistente. Opzioni:
  • Append: aggiunge i record in coda.
  • Truncate Insert: svuota la tabella prima dell'inserimento.
  • Crea tabella se non esiste: crea la tabella solo se non rilevata, evitando errori in esecuzioni multiple.

Nome tabella target

Specifica il nome fisico della tabella nel database (es. example_table).

3. Struttura tabellare

In questa scheda si definisce la mappatura tra le chiavi del JSON e le colonne della tabella.

CampoDescrizione
TipoDefinisce il tipo di dato (STRINGA, NUMERICO, DATA, DATA E ORA).
PrecisioneLunghezza massima per le stringhe o cifre per i numerici.
AliasNome della colonna nel database. Usare le doppie virgolette (es. "Nome Utente") per mantenere spazi o caratteri speciali.
Espressione JSONPathIl percorso JSON per estrarre il valore (es. $.task_name).

Gestione Table Structure

In basso a destra della Struttura tabellare sono presenti tre pulsanti:

PulsanteAzione
SalvaSalva la struttura definita
ImportaImporta una struttura esistente
EsportaEsporta la struttura definita

Questa funzionalità permette di salvare, esportare o riutilizzare le mappature, evitando la compilazione manuale dei campi e riducendo il rischio di errori.

Nota Tecnica

Visibilità: Le strutture salvate nel sistema sono visibili esclusivamente all'utente che le ha create. Approfondimento: Per una descrizione dettagliata di tutte le opzioni e della logica di funzionamento, fare riferimento alla pagina Table Structure.

4. Esempio di configurazione

Per importare un dataset JSON come il seguente: [{"task_name": "Backup", "status": "OK"}, {"task_name": "Restore", "status": "FAIL"}]

Configurazione della Struttura tabellare:

TipoPrecisioneAliasEspressione JSONPath
STRINGA1000name$.task_name
STRINGA1000status$.status

Parametri di Output

  • exitStatus: Codice di stato dell'operazione (0 = Successo).
  • rowCount: Numero di righe effettivamente inserite nel database.
  • targetTable: Nome della tabella di destinazione utilizzata.
  • DataExportCsv: Dati elaborati esportati in formato CSV.
  • DataExportJson: Dati elaborati esportati in formato JSON.
  • DataColumn.NomeColonna: Elenco di tutti i valori della colonna separati da virgola (es. Backup, Restore).
  • resultJson: Report JSON completo dell'esecuzione del task.

Esempio resultJson

{
"id": 19332,
"name": "JSON to Table v.2",
"type": "json-to-table_v2",
"type_name": "JSON to Table v.2",
"type_description": "Trasforma un json in tabella",
"config": {
"db_host": "example",
"db_port": "1433",
"db_type": "sqlserver",
"db_name": "EXAMPLE;TrustServerCertificate=Yes",
"db_user": "example",
"db_password": "Q8zp7Lrv4jpvuZqoVhzCYL73...",
"use_ssl": "Y",
"tab_name": "test_json_dataset",
"tab_target": "IF",
"tab_truncate": false,
"input_dataset": "#>JSON print.result<#",
"tablestructure": [
{
"field_name": "name",
"field_type": "string",
"field_value": "$.task_name",
"field_nullable": "Y",
"field_precision": "1000"
},
{
"field_name": "status",
"field_type": "string",
"field_value": "$.status",
"field_nullable": "Y",
"field_precision": "1000"
}
],
"connection_mode": "env",
"env_connection_name": "SqlServer_TEST",
"output_links": [
{
"to": "[TASK 1977_19305_48]",
"from": "[TASK 1977_19332_76]",
"text": "Condizione 10",
"color": "green",
"points": [...],
"toPort": "left3",
"fromPort": "port_1977_19332_1",
"isTraversed": true
}
]
},
"run_info": {
"run_id": 1487010,
"status": "Completed",
"run_result": "Success",
"result_text": "3 righe inserite nella tabella test_json_dataset",
"start_datetime": "2026-04-08 11:58:42",
"end_datetime": "2026-04-08 11:58:42",
"duration": 0
},
"output_parameters": {
"rowCount": "3",
"targetTable": "test_json_dataset",
"DataExportCsv": "name;status\n\"Generate Summary\";pending\n...",
"DataExportJson": "[{\"name\":\"Generate Summary\",\"status\":\"pending\"}, ...]",
"DataColumn.name": "Generate Summary,Translate Text,...",
"DataColumn.status": "pending,done,...",
"exitStatus": "0"
}
}