JSON connectors¶
JSON is een open-standaard formaat dat tekst gebruikt die door mensen kan worden gelezen om datavoorwerpen door te sturen die uit sleutel-waarde paren bestaan. Het is het meest gebruikte dataformaat om web-API's te bouwen.
Aangezien JSON-documenten heel veel verschillende vormen kunnen hebben, zijn er 3 JSON-connectoren om gegevens uit een JSON-bestand te halen:
De JSON File-connector,
de JSON Line connector,
de JSON Dict connector.
Opmerking
Wanneer de connector er niet in slaagt een document met een complexe structuur volledig te extraheren, gebruik dan een van de JSON-processoren om de extractie te voltooien;
JSON-bestand¶
Deze connector extraheert een geldig JSON-document (reeks of voorwerp) in één dataset met verschillende records.
Indien het document een JSON-reeks is, zal een record worden aangemaakt voor elk voorwerp binnen de reeks (de sleutels zullen gebruikt worden als kolomnamen).
Indien het document een JSON-voorwerp is, zou de parameter "JSON root" een door punten gescheiden pad naar de reeks in uw voorwerp moeten hebben. Indien niet voorzien, probeert de connector "items".
Voor elk item binnen de reeks kan de connector een ander pad volgen alvorens de records te extraheren dankzij de parameter "JSON object".
Ondersteunde veldtypes¶
Regelmatige velden (decimaal, bool, string)
JSON-voorwerp: zal gebruikt worden in de staat waarin het zich bevindt
- Array:
Indien de reeks JSON-voorwerpen bevat, zal ze gebruikt worden in de staat waarin ze zich bevindt
Indien ze strings bevat, zal een veld met meerdere waarden worden aangemaakt waarbij alle strings gescheiden zijn door een punt komma (";")
Aanmaak¶
Zie how to source a file.
Configuratie¶
Naam |
Omschrijving |
Gebruik |
---|---|---|
Extraheer bestandsnaam |
Maakt een nieuwe kolom aan met de naam van de bronbestand. |
Standaard is het vakje niet aangevinkt. Vink het vakje aan om de bestandsnaam te extraheren in een toegevoegde kolom. |
JSON root | Pad naar de JSON-reeks die de voorwerpen bevat die de dataset records zullen worden. |
Wanneer de JSON-array rechtstreeks aan het begin staat, laat het tekstvak dan leeg. Wanneer het JSON-bestand een JSON-voorwerp is, noteer dan het ijson-pad naar de reeks in het tekstvak. Opmerking ijson is een syntax om in JSON-voorwerpen te navigeren. Het bestaat uit het scheiden van de attribuutnamen met puntjes (bijv. "content.trains"). Voor geavanceerde gebruikers zijn er extra functies beschikbaar. |
JSON-voorwerp |
Relatief pad naar het JSON-voorwerp dat geëxtraheerd moet worden. |
Eenmaal de JSON-root is ingesteld (of leeg is gelaten), wanneer in de voorbeeldweergave irrelevante kolommen worden getoond en het JSON-voorwerp geëxtraheerd is geworden als de waarde van één kolom, noteer dan de naam van die kolom in het tekstvak voor het JSON-voorwerp. |
Voorbeelden¶
Voorbeeld 1:
[
{
"name": "Agra Express",
"origin": "Agra Cantt",
"destination": "New Delhi"
},
{
"name": "Gour Express",
"origin": "Balurghat",
"destination": "Sealdah"
}
]
In dit JSON-bestand is de JSON-array rechtstreeks aan de root ligt. DE JSON-rootconfiguratie moet niet worden opgevuld.
De resulterende kolom zal zijn (de volgorde van de kolommen kan verschillen):
naam |
vertrekpunt |
bestemming |
Agra Express | Agra Cantt | New Delhi |
Gour Express | Balurghat | Sealdah |
Voorbeeld 2:
{
"filename": "trains.json",
"content": {
"trains": [
{
"id": 123,
"info": {
"name": "Agra Express",
"origin": "Agra Cantt",
"destination": "New Delhi"
}
},
{
"id": 555,
"info": {
"name": "Gour Express",
"origin": "Balurghat",
"destination": "Sealdah"
}
}
]
}
}
Voor dit complexe JSON-bestand is de juiste JSON-root "centent.trains". Wanneer "content.trains" is ingesteld als JSON-root, zal de resulterende dataset de volgende zijn:
id | info |
123 | {"vertrekpunt": "Agra Cantt", "bestemming": "New Delhi", "naam": "Agra Express"} |
555 | {"vertrekpunt": "Balurghat", "bestemming": "Sealdah", "naam": "Gour Express"} |
Om enkel de "info" van JSON-voorwerpen te extraheren en het "id" nummer over te slaan, is het juiste JSON-voorwerp "info". Wanneer "info" ingesteld is als JSON-voorwerp, zal de resulterende dataset de volgende zijn:
naam |
vertrekpunt |
bestemming |
Agra Express | Agra Cantt | New Delhi |
Gour Express | Balurghat | Sealdah |
JSON-lijn¶
Deze connector verwacht een bestand waarin elke lijn een JSON-document van één lijn is. Het volledige bestand is geen geldig JSON-document maar elke lijn is dat wel.
De connector ondersteunt 2 modi:
één JSON-reeks op elke lijn (of één reeks alles bij elkaar genomen)
één JSON-voorwerp op elke lijn
Ondersteunde veldtypes¶
Regelmatige velden (decimaal, string)
Reeks: zal worden gebruikt in de toestand waarin deze zich bevindt
JSON-voorwerp: zal gebruikt worden in de staat waarin het zich bevindt
Aanmaak¶
Zie how to source a file.
Configuratie¶
Naam |
Omschrijving |
Gebruik |
---|---|---|
Extraheer bestandsnaam |
Maakt een nieuwe kolom aan met de naam van de bronbestand. |
Standaard is het vakje niet aangevinkt. Vink het vakje aan om de bestandsnaam te extraheren in een toegevoegde kolom. |
Nummer van de eerste lijn |
Voor bestanden die niet op de allereerste lijn beginnen, is het mogelijk te beslissen met welke lijn eerst rekening moet worden gehouden. De lijnen erboven zullen worden overgeslagen in de dataset. |
Standaard start de dataset op lijn 1. Vermeld het nummer van de lijn die overwogen zou moeten worden als het begin van de dataset. |
Headers | Voor bestanden waarvan de eerste lijn kolomtitels bevat. |
Standaard is het vakje aangevinkt. Het maakt de waarden van het eerste veld tot veldlabels. Vink het vakje uit wanneer de eerste lijn geen titels waar wel gegevens bevat: de veldlabels zullen dan standaard leeg zijn. |
JSON Dict¶
Deze connector extraheert een geldig JSON-document (reeks of voorwerp) in één dataset met verschillende records.
Het verwacht een JSON-voorwerp waar elke sleutel een record omvat en records met één kolom aanmaken om de sleutel te houden en één kolom voor elk attribuut van het overeenkomstige voorwerp (of één enkele kolom met de naam "waarde" wanneer de waarde een karakterreeks is in plaats van een voorwerp).
Ondersteunde veldtypes¶
Regelmatige velden (decimaal, bool, string)
JSON-voorwerp: zal gebruikt worden in de staat waarin het zich bevindt
- Array:
Indien de reeks JSON-voorwerpen bevat, zal ze gebruikt worden in de staat waarin ze zich bevindt
Indien ze strings bevat, zal een veld met meerdere waarden worden aangemaakt waarbij alle strings gescheiden zijn door een punt komma (";")
Aanmaak¶
Zie how to source a file.
Configuratie¶
Naam |
Omschrijving |
Gebruik |
---|---|---|
Extraheer bestandsnaam |
Maakt een nieuwe kolom aan met de naam van de bronbestand. |
Standaard is het vakje niet aangevinkt. Vink het vakje aan om de bestandsnaam te extraheren in een toegevoegde kolom. |
JSON root | Pad naar het JSON-voorwerp dat de records bevat. |
Wanneer het JSON-voorwerp rechtstreeks aan de root ligt, laat het tekstvak dan leeg. Zo niet, noteer het ijson-pad naar het voorwerp in het tekstvak. Opmerking ijson is een syntax om in JSON-voorwerpen te navigeren. Het bestaat uit het scheiden van de attribuutnamen met puntjes (bijv. "content.trains"). Voor geavanceerde gebruikers zijn er extra functies beschikbaar. |
Naam sleutelveld |
Label van de kolom "sleutel". |
Standaard "sleutel". Noteer het nieuwe label van de kolom "sleutel" in het tekstvak. Hierdoor zal zowel het label als de technische identifier van de kolom worden gewijzigd. |
Voorbeelden¶
Voorbeeld 1:
{
"2016": {
"type1": {
"price": 10,
"color": "blue",
"available": true
},
"type2": {
"price": 9,
"color": "red",
"available": true
}
},
"2015": {
"type1": {
"price": 10.5,
"color": "teal",
"available": true
},
"type2": {
"price": 9.1,
"color": "crimson",
"available": true
}
}
}
Wanneer de JSON-root leeg is gelaten, zal de resulterende dataset de volgende zijn:
sleutel |
type1 | type2 |
2016 | {"color": "blue", "available": true, "price": 10} | {"color": "red", "available": true, "price": 9} |
2015 | {"color": "teal", "available": true, "price": 10.5} | {"color": "crimson", "available": true, "price": 9.1} |
Voorbeeld 2:
{
"results": {
"datasets": [{
"abc": {
"title": "A B C",
"description": "A description about ABC"
}
},
{
"xyz": {
"title": "D E F",
"description": "Another description"
}
}
]
}
}
Voor dit complexe JSON-bestand, is de correcte JSON root "results.datasets.item".
results.datasets
leidt naar de reeks"item" herhaalt binnen de reeks en krijgt elk voorwerp
sleutel |
omschrijving |
titel |
abc | Een omschrijving over ABC |
A B C |
xyz | Een andere omschrijving |
D E F |