I denne Connected Learning Path skal vi lage en Chain som illustrerer hvordan du konverterer et JSON-datasett til CSV. I dette eksempelet er det en matrise med nestede objekter.
Denne stien forsterker looping-konseptet som vi lærte i JSON Data-øvelsen, samt det kartesiske sammenføyningskonseptet i JSON Nested Objects-stien. Hvis du ikke har fullført disse stiene, anbefaler vi på det sterkeste at du gjør det før du fullfører denne.
| Primært læringsmål | JSON Connector-funksjoner |
| Sekundære læringsmål | Kraften i Tabular Transformation Advanced Query Command, iterasjon og variabeltransformasjon |
| Forutsetninger | |
| Mal for støttekjede | CLP | Tilgang til JSON-matrise med nestede objekter |
Trinn 1: Opprett en kjede
- Legg til en ny kjede
- Gi kjeden et navn: CLP | Tilgang til JSON-array med nestede objekter
- Opprett en kjedevariabel
- Navn: cv-JSON-AllDonut
- Verdi: https://cs-sftp-training-bucket.s3.amazonaws.com/cs-training/transformation-qs/all_donuts.json
- Redd kjeden
Trinn 2: Hent JSON-data
Bruk HTTP Connector til å hente smultringdata fra et sted på nettet. Dette datasettet illustrerer et eksempel på et mer komplekst JSON-datasett med en matrise (flere elementer) av nestede objekter (attributter).
- Legg til en GET-kommando fra HTTP Connector til Start-noden.
- Konfigurer kommandoen med følgende:
| Navn | GET - Alle desserter |
| 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-AllDonut 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 å trekke ut nøkler fra JSON-matrisen for å identifisere de ulike smultringvariantene.
Nedenfor ser du skjemaet for all-donuts JSON:
Ordning
[{"id":"0001","type":"donut","name":"Cake","ppu":0.55,"batters":{"batter":[{"id":"1001","type":"Regular"},{"id":"1002","type":"Chocolate"},{"id":"1003","type":"Blueberry"},{"id":"1004","type":"Devil's Food"}]},"topping":[{"id":"5001","type":"None"},{"id":"5002","type":"Glazed"},{"id":"5005","type":"Sugar"},{"id":"5007","type":"Pulverisert sukker"},{"id":"5006","type":"Sjokolade med strøssel"},{"id":"5003","type":"Chocolate"},{"id":"5004","type":"Maple"}]},{"id":"0002","type":"donut","name":"Raised","ppu":0.55,"batters":{"batter":[{"id":"1001","type":"Regular"}]},"topping":[{"id":"5001","type":"None"},{"id":"5002","type":"Glazed"},{"id":"5005","type":"Sugar"},{"id":"5003","type":"Chocolate"},{"id":"5004","type":"Maple"}]},{"id":"0003","type":"donut","name":"Old Fashioned","ppu":0.55,"batters":{"batter":[{"id":"1001","type":"Regular"},{"id":"1002","type":"Chocolate"}]},"topping":[{"id":"5001","type":"None"},{"id":"5002","type":"Glazed"},{"id":"5003","type":"Chocolate"},{"id":"5004","type":"Maple"}]}]
- Legg til en Array to CSV Kommando fra JSON Connector til kjeden.
- Koble startnoden (GET - All Desserts) til kommandoen Array to CSV.
- Gi kommandoen et navn: Array to CSV - Get Variety.
- I parameteren JSON Data velger du Response Output fra GET - All Desserts 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.
- Skriv inn variety for Column Name og .name for JSONPath parametere.
- Velg Pipe for parameteren Delimiter.
- Lagre kommandoen
Trinn 4: Opprett et itererbart datasett
Som nevnt har datasettet en matrise (dvs. flere elementer) med nestede objekter. For å behandle hver av sortene individuelt, må radnumre legges til i datasettet. Disse radnumrene vil bli brukt i senere Array til CSV-kommandoer for å identifisere matriseelementet (smultring) som det nestede objektet (attributtene) skal analyseres for.
De som er kjent med Chain Builder, lurer kanskje på hvorfor vi bruker Advanced Query i stedet for Add Row Numbers Command. Kommandoen Add Row Numbers begynner å telle ved én (1), og vi må begynne å telle ved null (0) siden JSON Arrays er nullbaserte.
- Legg til en Advanced Query Command fra Tabular Transformation Connector til kjeden.
- Koble Array til CSV - Get Variety Command til Advanced Query Command.
- Gi kommandoen et navn: Avansert spørring - Legg til radnummer.
- Konfigurer seksjonen Tabeller
- I feltet File angir du Converted File Output from the Array to CSV - Get Variety Command.
- Skriv inn varianter i Tabellnavn parameter. Den angitte spørringen vil bli kjørt mot denne tabellen.
- Skriv inn følgende i Query-parameteren:
SELECT
ROW_NUMBER () OVER (
ORDER BY sort
)-1 RowNum,
sort
FROM
sorter
- Angi Pipe & Comma for henholdsvis Input Delimiter og Output Delimiter.
- Sjekk parameteren Forhåndsvisning av resultater.
- Lagre kommandoen.
Trinn 5: Opprett en JSON-array
Bruk CSV til JSON-kommandoen fra JSON Connector for å konvertere den unike listen over sorter 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 - Add Row Numbers Command til CSV to JSON Command.
- Konfigurer kommandoen ved hjelp av følgende:
| Navn | CSV til JSON - Varianter |
| Inndatafil | Resultat Utdata fra Advanced Query - Add Row Numbers Kommando |
| Skilletegn | Komma (,) |
- Lagre kommandoen
Trinn 6: Legg til en kommandogruppe
Legg til en kommandogruppe i kjeden for å muliggjøre iterasjon over hver av smultringvariantene som ble identifisert i trinnet Avansert spørring.
- Legg til en Command Group i kjeden.
- Koble kommandoen CSV to JSON - Varieties til In i kommandogruppen.
- Klikk på Kommandogruppen, og velg deretter dråpeikonet for å endre kommandofargen til gul.
- Gi gruppen et navn: Smultringvarianter.
- Aktiver Iterations og velg JSON File Output fra CSV to JSON - Varieties Command.
- Lagre kommandogruppen.
Trinn 7: Hent listen over pålegg
Bruk Array to CSV-kommandoen i JSON Connector for å hente listen over toppinger i den nestede JSON-arrayen. Denne handlingen gjentas for hver av smultringvariantene.
⚠ Vær spesielt oppmerksom på advarselen i trinnene nedenfor, som er merket med rødt utropstegn.
- Legg til en Array to CSV Kommando fra JSON Connector til kjeden.
- Koble Group Start fra Donut Varieties Command Group til Array to CSV Command.
- Gi kommandoen et navn: Array to CSV - Toppings.
- I parameteren JSON Data velger du Response Output fra GET - All Desserts Command.
- La parameteren Input Text stå tom.
- I parameteren Path to root utnytter vi iterasjonsverdien til å spesifisere matriseelementet som iterasjonen skal operere på.
- Følgende trinn er kritiske og bør leses i sin helhet før du fullfører dette trinnet.
- Klikk i Path to root parameter. Utvid Group Iterator i ruten Variabelvalg, og klikk på JSON File Iteration.
- Klikk på den grønne JSON File Iteration -boblen i Path to root-parameteren. Dette åpner skjemaet Variabeltransformasjon. Velg Get Value from JSON og klikk på plusstegnet (+). Skriv inn RowNum (skiller mellom store og små bokstaver) i feltet Value og trykk på enter-tasten. Klikk på Godta.
- Variabelen skal ha en stjerne som indikerer at en Variabel-transformasjon har blitt brukt.
- 🛑 Hvis noen av disse trinnene mislykkes, sletter du JSON File Iteration Variable fra Path to root og starter på nytt.
- Etter JSON File Iteration-boblen skriver du topping (små bokstaver) og trykker på enter-tasten.
- Følgende trinn er kritiske og bør leses i sin helhet før du fullfører dette trinnet.
- La parameteren Filter stå tom.
- La standardverdien være komma (,) for parameteren Multi-value Delimiter.
- Merk av for Forhåndsvisning av resultat.
- I Kolonner-delen spesifiserer vi nøkkelen(e) i JSON-arrayen som verdien(e) skal hentes ut for i en kolonne i den resulterende CSV-filen.
- I Column name parameter, skriv inn topping og i JSONPath parameter, skriv inn .type.
- I parameteren Delimiter velger du Comma.
- Lagre kommandoen.
Trinn 8: Skaff deg listen over slagere
Bruk Array to CSV-kommandoen i JSON Connector for å hente listen over slagmenn i den nestede JSON-arrayen. Denne handlingen gjentas for hver av smultringvariantene. Siden dette trinnet er svært likt det forrige trinnet, kopierer du kommandoen som ble konfigurert i det forrige trinnet, og oppdaterer den ganske enkelt med informasjon om slagmennene.
- Kopier Array til CSV - Toppings Kommando.
- Koble Group Start fra Donut Varieties Command Group til Array to CSV - Toppings (Copy) Command.
- Gi den kopierte kommandoen et navn: Array to CSV - Batters.
- I parameteren Path to root sletter du den øverste boblen ved å klikke på X-en. Skriv inn batters (skiller mellom store og små bokstaver), og trykk på enter. Skriv deretter inn batter og trykk enter. Det skal være tre bobler i Path to root-parameteren.
- JSON-filens iterasjon
- batters
- røre
- I Kolonner-delen endrer du Kolonnenavn fra topping til batter.
- Lagre kommandoen
Trinn 9: Flat ut dataene
På samme måte som i forrige øvelse kan du bruke en kartesisk sammenføyning i en avansert spørringskommando fra Tabular Transformation Connector for å gjøre datasettet flatere.
- Legg til en Advanced Query Command fra Tabular Transformation Connector i kjeden.
- Koble Array til CSV - Batters og Array til CSV - Toppings Kommandoer til Advanced Query Kommandoen.
- Gi kommandoen et navn: Advanced Query - Flatten JSON Object.
- I delen Tables klikker du én gang på knappen Add slik at det blir to tilgjengelige tabeller. Fyll ut tabelldelen i henhold til tabellen nedenfor:
| Fil | Tabellnavn |
| Konvertert fil Utdata fra Array til CSV - Batters Command | Batter |
| Konvertert fil Utdata fra Array til CSV - Toppings Kommando | Topping |
-
Skriv inn spørringen nedenfor i Query-parameteren:
Select '<JSON FILE ITERATION>' as Variety,Batter,Topping from Batter,Topping
-
- <JSON FILE ITERATION> bør velges og erstattes ved å utvide Group Iterator i Variable-panelet og velge JSON File Iteration.
- Når JSON File Iteration-variabelen er valgt, klikker du på den grønne boblen for å åpne skjemaet Variabelomforming.
- Bruk transformasjonen Get Value from JSON Variable transformation ved hjelp av variety for feltet Value.
- Husk å trykke enter etter at du har skrevet inn variety og Accept the transformation!
- Angi Comma for parameterne Input Delimiter og Output Delimiter.
- Merk av for Forhåndsvisning av resultater.
- Lagre kommandoen.
Trinn 9: Test øvelsen
- Publiser the Chain.
- Klikk på Execute og velg deretter Run Chain.
- Når kjeden er fullført,
- Klikk på noden Advanced Query - Flatten JSON Object, og velg kategorien Outputs. Bekreft antall poster for hver iterasjon:
- Iterasjon 1: 28 poster
- Iterasjon 2: 5 poster
- Iterasjon 3: 8 poster
- Klikk på Forhåndsvisning av resultater (øyeikon) Bekreft at dataene stemmer overens for hver iterasjon.
- Klikk på noden Advanced Query - Flatten JSON Object, og velg kategorien Outputs. Bekreft antall poster for hver iterasjon:
Hvis du vil lære mer om datatransformasjon ved hjelp av kjeder, kan du sjekke ut Connected Learning Paths - Transformation Introduction!