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