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.
| Campo | Descrizione |
|---|---|
| Tipo | Definisce il tipo di dato (STRINGA, NUMERICO, DATA, DATA E ORA). |
| Precisione | Lunghezza massima per le stringhe o cifre per i numerici. |
| Alias | Nome della colonna nel database. Usare le doppie virgolette (es. "Nome Utente") per mantenere spazi o caratteri speciali. |
| Espressione JSONPath | Il percorso JSON per estrarre il valore (es. $.task_name). |
Gestione Table Structure
In basso a destra della Struttura tabellare sono presenti tre pulsanti:
| Pulsante | Azione |
|---|---|
| Salva | Salva la struttura definita |
| Importa | Importa una struttura esistente |
| Esporta | Esporta 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:
| Tipo | Precisione | Alias | Espressione JSONPath |
|---|---|---|---|
STRINGA | 1000 | name | $.task_name |
STRINGA | 1000 | status | $.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"
}
}