I denne Connected Learning Path skal vi lage en Chain som illustrerer hvordan du konverterer et JSON-datasett med nestede objekter til CSV. Vi skal også se hvordan vi kan bruke en kartesisk sammenføyning for å flate ut denne nestede strukturen.
| Primært læringsmål | JSON Connector-funksjonalitet for nestede JSON-objekter |
| Sekundære læringsmål | Tabular Transformation Advanced Query Command (avansert spørringskommando) |
| Forutsetninger | Konfigurer JSON-tilkobling Konfigurer HTTP-tilkobling |
| Støttemal | CLP | Tilgang til nestede JSON-objekter |
Trinn 1: Opprett en kjede
- Legg til en ny kjede.
- Gi kjeden et navn: CLP | Accessing JSON Nested Objects.
- Opprett en kjedevariabel, og fyll den med følgende verdier:
- Navn: cv-JSON-Donut
- Verdi: https://cs-sftp-training-bucket.s3.amazonaws.com/cs-training/transformation-qs/donut.json
- Redd kjeden.
Trinn 2: Hent JSON-data
Bruk HTTP Connector til å hente headcount-relaterte data i JSON-format fra et sted på nettet.
- Legg til en GET -kommando fra HTTP Connector til Start-noden.
- Konfigurer kommandoen ved hjelp av følgende verdier:
Navn GET - JSON-data 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-Donut Kjedevariabel Forespørselsstreng <la stå tomt> Innholdstype application/json Svar
<la stå tomt> - Lagre kommandoen.
Trinn 3: Hent JSON-data som ikke er nestet
Denne kjeden bruker kommandoen Object to CSV fra JSON Connector til å trekke ut navn- og typenøklene, som ikke er nestede, fra JSON-objektet.
Merk: Det er viktig å forstå skjemaet til JSON-datasettet. En List File Content -kommando fra File Utilities Connector kan brukes til å visualisere skjemaet. Her er skjemaet for "doughnut"-JSON:
Skjema:
{"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":"Sukker"},{"id":"5007","type":"Pulverisert sukker"}, {"id":"5006","type":"Chocolate with Sprinkles"},{"id":"5003","type":"Chocolate"}, {"id":"5004","type":"Maple"}] } - Legg til et Object to CSV -kommando fra JSON Connector til kjeden.
- Koble Start Node (GET - JSON Data) til kommandoen Object to CSV.
- Åpne kommandoen, og konfigurer den med følgende verdier.
- Gi kommandoen et navn: Object to CSV - Name & Type.
- For parameteren JSON Data velger du Response Output fra kommandoen GET - JSON Data.
- La parameterne Input Text og Path to root stå tomme.
- La parameteren Multi-value Delimiter stå som et komma (,).
- Merk av i avmerkingsboksen Preview Result.
- Velg Pipe for parameteren Delimiter.
Avsnittet Columns brukes til å angi hvilke elementer fra JSON-objektet som skal trekkes ut til et kolonnedatasett (CSV). - Klikk én gang på knappen Add for å legge til to kolonner.
- For den første kolonnen skriver du inn name for Column Name og .name for JSONPath-parametrene.
- For den andre kolonnen skriver du inn type for Column Type og .type for JSONPath-parametrene.
- Lagre kommandoen.
Trinn 4: Hent listen over pålegg
Bruk Array to CSV-kommandoen i JSON Connector for å hente listen over toppinger i den nestede JSON-arrayen.
- Legg til en Array to CSV -kommando fra JSON Connector til kjeden.
- Koble GET - JSON Data Command til Array to CSV Command.
- Konfigurer kommandoen ved hjelp av følgende verdier:
- Gi kommandoen et navn: Array to CSV - Toppings.
- For parameteren JSON Data velger du Response Output fra kommandoen GET - JSON Data.
- La parameteren Input Text stå tom.
- For parameteren Path to root skriver du inn topping (med små bokstaver) og trykker på Enter. Topping skal vises med et likhetstegn foran i en grå boble.
- La parameteren Filter stå tom.
- La standardverdien komma (,) stå som standardverdi for parameteren Multi-value Delimiter.
- Merk av i avmerkingsboksen Preview Result.
- I delen Columns spesifiserer vi nøkkelen(e) i JSON-arrayen som skal trekke ut verdien(e) til en kolonne i den resulterende CSV-filen.
- I den første parameteren Column name skriver du inn ToppingID, og i parameteren JSONPath skriver du inn .id.
- I den andre parameteren Column name skriver du inn ToppingType, og i parameteren JSONPath skriver du inn .type.
- For parameteren Delimiter velger du Pipe.
- Lagre kommandoen.
Trinn 5: Skaff deg en liste over slagmennene
Denne kjeden bruker kommandoen Array to CSV i JSON Connector for å hente listen over slagmenn i den nestede JSON-arrayen. Vi vil bruke to Array to CSV -kommandoer for å trekke ut røre og pålegg på grunn av den ulike nestingen av hver matrise.
Hvis du bruker en Object to CSV -kommando med nestede JSONPaths (for eksempel .topping[*].type), opprettes det flerdelte verdier som er vanskeligere å bruke i et CSV-datasett.
- Legg til en Array to CSV -kommando fra JSON Connector til kjeden.
- Koble GET - JSON Data Command til Array to CSV Command.
- Konfigurer kommandoen ved hjelp av følgende verdier:
- Gi kommandoen et navn: Array to CSV - Batters.
- For parameteren JSON Data velger du Response Output fra kommandoen GET - JSON Data.
- La parameteren Input Text stå tom.
- For parameteren Path to root skriver du inn batters (med små bokstaver) og trykker på Enter. Skriv deretter inn batter (med små bokstaver), og trykk på Enter.
Slagmenn og slagmann skal vises i denne rekkefølgen i to grå bobler. - La parameteren Filter stå tom.
- La standardverdien komma (,) stå som standardverdi 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.
- For Column name parameter, skriv inn BatterID og i JSONPath parameter, skriv inn .id.
- For Column name parameter, skriv inn BatterType og i JSONPath parameter, skriv inn .type.
- For parameteren Delimiter velger du Pipe.
- Lagre kommandoen.
Trinn 6: Flat ut dataene
Vi vil bruke en "kartesisk sammenføyning" i en Advanced Query -kommando fra Tabular Transformation Connector for å flate ut datasettet. En kartesisk sammenføyning skaper alle mulige kombinasjoner av elementene som vi hentet ut ved hjelp av kommandoene Object to CSV og Array to CSV.
- Legg til en Advanced Query Command fra Tabular Transformation Connector i kjeden.
- Koble hver av Object to CSV - Name & Type, Array to CSV - Batters, og Array to CSV - Toppings Kommandoer til Advanced Query Kommando.
- Konfigurer kommandoen ved hjelp av følgende verdier:
- Gi kommandoen et navn: Advanced Query - Flatten JSON Object.
- I delen Tables klikker du på knappen Add to ganger slik at det blir tre tilgjengelige tabeller.
Fyll ut tabellene ved hjelp av følgende verdier:Fil Tabellnavn Velg konvertert fil Output fra Object to CSV - Name & Type Command. Navn Velg konvertert fil Output fra Array to CSV - Batters Kommando. Batter Velg konvertert fil Output fra Array to CSV - Toppings Kommando. Topping - For parameteren Query skriver du inn følgende:
Select Type as dessert_type, Name as variety, BatterType, ToppingType from Name, Batter, Topping - For parameterne Input Delimiter og Output Delimiter angir du Pipe.
- Merk av i avmerkingsboksen Forhåndsvisning av resultater.
- Lagre kommandoen.
Trinn 7: Test kjeden og gå gjennom resultatene AAA
- 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 fanen Outputs.
- Bekreft at Record Count er 28.
- Velg fanen Logs, og bekreft at forhåndsvisningen av dataene stemmer overens med følgende skjermbilde.
Hvis du vil lære mer om datatransformasjon ved hjelp av kjeder, kan du gå til Connected Learning Paths - Transformation Introduction.