In questo Percorso didattico collegato, creeremo una catena che illustra come convertire un semplice set di dati JSON in CSV. Inoltre, esploreremo come eseguire un loop su un set di dati JSON e filtrare in base ai valori presenti nei dati.
| Obiettivo di apprendimento primario | Capacità del connettore JSON |
| Obiettivi didattici secondari |
Comando di trasformazione tabellare avanzato Iterazione di gruppo |
| Prerequisiti | Configurare la connessione del connettore JSON |
| Modello di supporto | CLP | Accesso ai dati JSON |
Passo 1: Creare una catena
- Aggiungi una nuova catena
- Nome della catena CLP | Accesso ai dati JSON
- Crea una variabile di catena:
- Sotto Variabili a catena, clicca sul segno più
- Nome: cv-JSON-Dipendente
- Valore: https://cs-sftp-training-bucket.s3.amazonaws.com/cs-training/transformation-qs/emp_detail.json
- Sotto Variabili a catena, clicca sul segno più
- Salva la catena
Passo 2: Recupero dei dati JSON
Utilizziamo il connettore HTTP per recuperare i dati relativi all'organico in formato JSON da un sito web.
- Aggiungere un comando GET dal connettore HTTP al nodo Start
- Configura il comando come segue:
| Nome | GET - Tutti i dipendenti |
| Nome utente | <leave blank> |
| Password | <leave blank> |
| Certificato CA | <leave blank> |
| Certificato | <leave blank> |
| Chiave privata del certificato | <leave blank> |
| Mostra risposta | Selezionata |
| URL | cv-JSON-Dipendente Variabile di catena |
| Stringa di query | <leave blank> |
| Tipo di contenuto | applicazione/json |
| Risposta | <leave blank> |
- Salva il comando
Passo 3: Convertire JSON in CSV
Usa JSON Connector per convertire il dataset JSON in formato CSV. In questo passaggio, seleziona solo i campi ID dipendente e Paese dall'array JSON.
È importante comprendere lo schema del dataset JSON. Per visualizzare lo schema è possibile utilizzare il comando List File Content del File Utilities Connector. Puoi anche aggiungere lo schema al campo Response del comando Get per un facile riferimento. Di seguito è riportato lo schema del JSON dei dipendenti:
Schema:
[
{
"emp_id": "26-4992011",
"user_name": "apostolo0",
"first_name": "Audi",
"cognome": "Postle",
"job_title": "Chief Design Engineer",
"dipartimento": "Marketing",
"città": "Cheyenne",
"paese": "Stati Uniti",
"valuta": "USD",
"data_assunzione": "30/08/2000",
"fte": 1,
"termed": false
}
]
- Aggiungi un comando Array to CSV dal connettore JSON alla catena.
- Collega il nodo iniziale (GET - Tutti i dipendenti) al comando Array to CSV.
- Assegna un nome al comando: Array to CSV - All Employees.
- Nel parametro JSON Data seleziona la Response Output del comando GET - All Employees.
- Lascia vuoti i parametri Testo di ingresso, Percorso verso la radice, e Filtro.
- Lascia il parametro Multi-value Delimiter come una virgola (,).
- Seleziona l'opzione Anteprima del risultato.
- La sezione Colonne serve a specificare quali elementi dell'array JSON saranno estratti in un dataset in colonne (CSV). Clicca una volta sul pulsante Add per aggiungere un'altra colonna.
- Nella prima colonna, inserisci emp_id per il nome della colonna e .emp_id per i parametri JSONPath.
- Assicurati di includere il punto (.) prima di emp_id nel parametro JSONPath.
- Nella seconda colonna, inserisci country per il nome della colonna e .country per i parametri JSONPath.
- Seleziona Comma per il parametro Delimitatore.
- Nella prima colonna, inserisci emp_id per il nome della colonna e .emp_id per i parametri JSONPath.
- Salva il comando
Passo 4: Ottenere l'elenco unico dei Paesi nei dati
Usa una semplice istruzione Select Distinct con il comando Advanced Query del Tabular Transformation Connector per ottenere l'insieme unico di paesi nei dati. Più avanti in questo esercizio, questo elenco verrà utilizzato per recuperare i dipendenti per ogni singolo paese.
- Aggiungi un comando Advanced Query dal connettore Tabular Transformation alla catena.
- Collega il comando Array to CSV - All Employees al comando Advanced Query.
- Nome del comando: Query avanzata - Paesi.
- La sezione Tabelle permette di utilizzare uno o più dataset delimitati per creare tabelle su cui scrivere istruzioni SQL. Un database SQLite con le tabelle specificate viene generato al volo, senza bisogno di installare altro software.
- Nel campo File, specifica il file Converted File Output dal comando Array to CSV - All Employees.
- Inserisci Countries nel parametro Table Name. La query specificata verrà eseguita su questa tabella.
- Nel parametro Query, inserisci quanto segue:
Seleziona Paese distinto da Paesi
- Specifica Comma per i parametri Delimitatore di ingresso e Delimitatore di uscita.
- Controlla il parametro Anteprima dei risultati
- Salva il comando.
Passo 5: creare un array JSON dall'elenco dei Paesi
Utilizziamo il comando CSV to JSON del JSON Connector per convertire l'elenco unico di paesi in un array JSON. Un gruppo di comandi può quindi iterare su ogni elemento di questo array.
- Aggiungi un comando CSV to JSON dal connettore JSON alla catena.
- Collega il comando Advanced Query - Countries al comando CSV to JSON.
- Configura il comando come segue:
| Nome | Da CSV a JSON - Paesi |
| File di input | Risultato Output del comando Query avanzata - Paesi |
| Delimitatore | Virgola (,) |
- Salva il comando
Passo 6: Aggiungere un gruppo di comandi
Aggiungi un Gruppo di Comandi alla Catena per abilitare l'iterazione su ogni singolo paese identificato nel passaggio Query avanzata.
- Aggiungi un gruppo di comandi alla catena.
- Collega il comando CSV to JSON - Countries alla sezione In del Gruppo di Comandi.
- Clicca sul Gruppo di comandi e seleziona l'icona del contagocce per cambiare il colore del comando in arancione.
- Dai un nome al gruppo: Dipendenti attivi.
- Attiva la levetta Iterazioni sotto la scheda iterazioni e seleziona il file JSON Output dal comando CSV to JSON - Countries.
- Salva il gruppo di comandi.
Passo 7: Filtrare i dati JSON dei dipendenti per paese
Convertire il dataset JSON in CSV filtrando solo i record dei dipendenti per il paese attualmente in elaborazione nell'iterazione. Questo passaggio mette in evidenza due potenti funzionalità: la capacità di eseguire cicli o iterazioni e la capacità di applicare filtri al processo di conversione JSON. La comprensione di queste funzionalità aiuta a sviluppare catene robuste ed efficienti.
Copia il comando Array to CSV configurato in precedenza per questo passaggio e la configurazione sfrutta in gran parte la stessa configurazione, tranne quando indicato di seguito.
- Copia l'array in CSV - Tutti i dipendenti Comando.
- Collega il Gruppo Inizio dal Gruppo di Comando al Comando Array to CSV - Tutti i dipendenti (Copia).
- Modifica il comando.
- Nome del comando: Da array a CSV - Dipendenti per paese.
- Nel parametro Filtro, inserisci quanto segue:
?(@.country == "<JSON>")
-
- Lo spazio prima di e dopo il doppio segno di uguale (==) sono richiesti.
- <JSON> dovrebbe essere sostituito da JSON File Iteration sotto Group Iterator nel riquadro delle variabili.
- Quando aggiungi l'iterazione del file JSON, clicca sulla bolla Variabile e aggiungi una trasformazione Ottieni valore da variabile JSON.
- Nel parametro Valore della trasformazione variabile, inserisci paese e premi il tasto Invio. Ricorda che JSON è sensibile alle maiuscole.
- Modifica la colonna emp_id in modo che abbia un Column Name di employee_id. Non modificare il percorso JSON.
- Il nome della colonna generato dal comando non deve corrispondere alla chiave dell'array JSON.
- Aggiungi 10 colonne al comando e configuralo come segue:
| Nome della colonna | JSONPath |
| nome_utente | .nomeutente |
| nome_nome | .first_name |
| cognome | .cognome |
| titolo | .job_title |
| reparto | .dipartimento |
| città | .città |
| valuta | .valuta |
| data_assunzione | .data_assunzione |
| fte | .fte |
| terminato | .terminato |
- Salva il comando.
Passo 8: Prova l'esercizio
Ora che la Catena è completa, verifica il risultato.
- Pubblica la Catena.
- Clicca su Execute e poi seleziona Run Chain.
- Una volta completata la Catena, clicca sul nodo Array to CSV - Employees by Country.
- Nota che l'iterazione è stata eseguita cinque (5) volte.
- Seleziona ogni valore di iterazione e poi clicca sulla scheda Inputs. Conferma che il filtro corrisponde alla tabella seguente.
- Seleziona l'iterazione 5 e clicca sulla scheda Logs. Conferma che l'anteprima dei dati corrisponde all'immagine qui sotto.
| Iterazione 1 | Stati Uniti |
| Iterazione 2 | Brasile |
| Iterazione 3 | Kenya |
| Iterazione 4 | Italia |
| Iterazione 5 |
Australia |
Per saperne di più sulla trasformazione dei dati utilizzando le catene, consulta il sito Percorsi di formazione connessi - Introduzione alla trasformazione!