I denne Connected Learning Path skal vi lage en Chain som illustrerer hvordan du konverterer et enkelt JSON-datasett til CSV. Vi skal også utforske hvordan du kan loope over et JSON-datasett og filtrere basert på verdier i dataene.
| Primært læringsmål | JSON Connector-funksjonalitet |
| Sekundære læringsmål |
Avansert spørringskommando for tabelltransformasjon Gruppe-iterasjon |
| Forutsetninger | Konfigurer JSON Connector-tilkobling |
| Støttemal | CLP | Tilgang til JSON-data |
Trinn 1: Opprett en kjede
- Legg til en ny kjede
- Navngi kjeden CLP | Tilgang til JSON-data
- Opprett Chain-variabel:
- Under Kjedevariabler klikker du på plusstegnet
- Navn: cv-JSON-Employee
- Verdi: https://cs-sftp-training-bucket.s3.amazonaws.com/cs-training/transformation-qs/emp_detail.json
- Under Kjedevariabler klikker du på plusstegnet
- Redd kjeden
Trinn 2: Hent JSON-data
Vi bruker HTTP Connector til å hente inn data om antall ansatte i JSON-format fra et sted på nettet.
- Legg til en GET-kommando fra HTTP Connector til Start-noden
- Konfigurer kommandoen med følgende:
| Navn | GET - Alle ansatte |
| Brukernavn | <la stå tomt> |
| Passord | <la stå tomt> |
| CA-sertifikat | <la stå tomt> |
| Sertifikat | <la stå tomt> |
| Sertifikatets private nøkkel | <la stå tomt> |
| Vis svar | Kontrollert |
| URL | cv-JSON-Employee Kjedevariabel |
| Forespørselsstreng | <la stå tomt> |
| Innholdstype | application/json |
| Svar | <la stå tomt> |
- Lagre kommandoen
Trinn 3: Konverter JSON til CSV
Bruk JSON Connector til å konvertere JSON-datasettet til et CSV-format. I dette trinnet velger du bare feltene for ansatt-ID og land fra JSON-matrisen.
Det er viktig å forstå skjemaet for JSON-datasettet. En List File Content-kommando fra File Utilities Connector kan brukes til å visualisere skjemaet. Du kan også legge til skjemaet i svarfeltet i Get-kommandoen for å gjøre det enklere å finne det. Nedenfor ser du skjemaet for JSON for de ansatte:
Skjema:
[
{
"emp_id": "26-4992011",
"user_name": "apostle0",
"first_name": "Audi",
"last_name": "Postle",
"job_title": "Chief Design Engineer",
"department": "Marketing",
"city": "Cheyenne",
"country": "United States",
"currency": "USD",
"hire_date": "08/30/2000",
"fte": 1,
"termed": false
}
]
- Legg til en Array to CSV Kommando fra JSON Connector til kjeden.
- Koble startnoden (GET - All Employees) til kommandoen Array to CSV.
- Gi kommandoen et navn: Array til CSV - Alle ansatte.
- I parameteren JSON Data velger du Response Output fra GET - All Employees Command.
- La parameterne Input Text, Path to root, og Filter stå tomme.
- La parameteren Multi-value Delimiter stå som et komma (,).
- Merk av for Forhåndsvisning av resultat.
- Kolonnedelen brukes til å angi hvilke elementer fra JSON-arrayen som skal trekkes ut til et kolonnedatasett (CSV). Klikk én gang på knappen Add for å legge til en ekstra kolonne.
- I den første kolonnen skriver du inn emp_id for Column Name og .emp_id for JSONPath-parametrene.
- sørg for å inkludere punktum (.) før emp_id i JSONPath-parameteren.
- I den andre kolonnen skriver du inn country for Column Name og .country for JSONPath-parametrene.
- Velg Comma for parameteren Delimiter.
- I den første kolonnen skriver du inn emp_id for Column Name og .emp_id for JSONPath-parametrene.
- Lagre kommandoen
Trinn 4: Få den unike listen over land i dataene
Bruk en enkel Select Distinct -setning med Advanced Query Command i Tabular Transformation Connector for å finne det unike settet med land i dataene. Senere i denne øvelsen vil denne listen bli brukt til å hente ut de ansatte i hvert enkelt land.
- Legg til en Advanced Query Command fra Tabular Transformation Connector i kjeden.
- Koble Array to CSV - All Employees Command til Advanced Query Command.
- Gi kommandoen et navn: Avansert spørring - Land.
- I Tables-delen kan du bruke ett eller flere avgrensede datasett til å opprette tabeller som du kan skrive SQL-setninger mot. En SQLite-database med de angitte tabellene genereres umiddelbart, og det kreves ingen ekstra programvareinstallasjon.
- I feltet File angir du Converted File Output from the Array to CSV - All Employees Command.
- Skriv inn Land i Tabellnavn parameter. Den angitte spørringen vil bli kjørt mot denne tabellen.
- Skriv inn følgende i Query-parameteren:
Velg Distinct Country fra Countries
- Angi Comma for parameterne Input Delimiter og Output Delimiter.
- Sjekk Forhåndsvisning av resultater parameter
- Lagre kommandoen.
Trinn 5: Opprett en JSON-array fra landlisten
Vi bruker CSV til JSON-kommandoen fra JSON Connector til å konvertere den unike listen over land til en JSON-array. En kommandogruppe kan deretter iterere over hvert element i denne matrisen.
- Legg til en CSV til JSON -kommando fra JSON Connector til kjeden.
- Koble Advanced Query - Countries Command til CSV to JSON Command.
- Konfigurer kommandoen ved hjelp av følgende:
| Navn | CSV til JSON - Land |
| Inndatafil | Resultat Utdata fra Avansert spørring - land Kommando |
| Skilletegn | Komma (,) |
- Lagre kommandoen
Trinn 6: Legg til en kommandogruppe
Legg til en kommandogruppe i kjeden for å muliggjøre iterasjon over hvert av de individuelle landene som ble identifisert i trinnet Avansert spørring.
- Legg til en Command Group i kjeden.
- Koble kommandoen CSV to JSON - Countries til I delen av kommandogruppen.
- Klikk på Kommandogruppen, og velg deretter dråpeikonet for å endre kommandofargen til orange.
- Gi gruppen et navn: Aktive ansatte.
- Aktiver Iterations under iterations-fanen, og velg JSON File Output fra CSV to JSON - Countries Command.
- Lagre kommandogruppen.
Trinn 7: Filtrer JSON-data for ansatte etter land
Konverter JSON-datasettet til CSV og filtrer kun medarbeiderpostene for det landet som behandles i iterasjonen. Dette trinnet fremhever to kraftige funksjoner - muligheten til å sløyfe eller iterere og muligheten til å bruke filtre i JSON-konverteringsprosessen. Når man forstår disse egenskapene, blir man bedre i stand til å utvikle robuste og effektive kjeder.
Kopier den tidligere konfigurerte Array to CSV-kommandoen for dette trinnet, og konfigurasjonen bruker i stor grad den samme konfigurasjonen, bortsett fra der det er angitt nedenfor.
- Kopier Array til CSV - Alle ansatte Kommando.
- Koble Group Start fra Command Group til Array to CSV - All Employees (Copy) Command.
- Rediger kommandoen.
- Gi kommandoen et navn: Array til CSV - Ansatte etter land.
- I filterparameteren angir du følgende
?(@.country == "<JSON FILE ITERATION>")
-
- Mellomrommet før og etter det doble likhetstegnet (==) er kreves.
- <JSON FILE ITERATION> bør erstattes med JSON File Iteration under Group Iterator i Variable Pane.
- Når du legger til JSON-fil-iterasjonen, klikker du på variabelboblen og legger til en Get Value from JSON Variable Transformation.
- Skriv inn country i verdiparameteren for Variabel Transformation, og trykk deretter på Enter-tasten. Husk at JSON er case-sensitive.
- Rediger emp_id-kolonnen slik at den har et Kolonnenavn av employee_id. Ikke endre JSONPath.
- Kolonnenavnet som genereres av kommandoen, trenger ikke å samsvare med JSON Array-nøkkelen.
- Legg til 10 kolonner i kommandoen, og konfigurer i henhold til beskrivelsen nedenfor:
| Kolonnenavn | JSONPath |
| brukernavn | .bruker_navn |
| fornavn | .fornavn |
| etternavn | .etternavn |
| tittel | .job_title |
| avdeling | .avdeling |
| by | .by |
| valuta | .valuta |
| hire_date | .hire_date |
| fte | .fte |
| avsluttet | .betegnet |
- Lagre kommandoen.
Trinn 8: Test øvelsen
Nå som kjeden er ferdig, kan du teste resultatet.
- Publiser the Chain.
- Klikk på Execute og velg deretter Run Chain.
- Når kjeden er fullført, klikker du på noden Array to CSV - Employees by Country.
- Legg merke til at iterasjonen ble kjørt fem (5) ganger.
- Velg hver iterasjonsverdi, og klikk deretter på fanen Inputs. Kontroller at Filter stemmer overens med tabellen nedenfor.
- Velg iterasjon 5, og klikk på fanen Logs. Bekreft at forhåndsvisningen av dataene stemmer overens med bildet nedenfor.
| Iterasjon 1 | USA |
| Iterasjon 2 | Brasil |
| Iterasjon 3 | Kenya |
| Iterasjon 4 | Italia |
| Iterasjon 5 |
Australia |
Hvis du vil lære mer om datatransformasjon ved hjelp av kjeder, kan du sjekke ut Connected Learning Paths - Transformation Introduction!