• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

gegevens via api json

Status
Niet open voor verdere reacties.

appie36

Gebruiker
Lid geworden
19 mei 2009
Berichten
196
hallo,

Ik wil van een site gegevens(ctgb.nl) koppelen met excel, nu staat er dat het via api - json kan. Geen idee waar ik moet beginnen om dit in excel te krijgen.

Is er iemand die mij de goede kan op kan loodsen?

mvg

Appie
 
Je kan het beste de vertaalslag maken om het in een csv-bestand te laten zetten. Hier zal hoogstwaarschijnlijk wel wat geprogrammeerd bij moeten worden.
 
Via een power query heb ik wel het excel bestand kunnen koppelen zodat deze automatisch de gegevens inlaad. Helaas staan hier niet alle gegevens in die ik wil hebben.
Nu had ik gedacht dat dit op gelijke wijze zou werken, maar helaas is dit dus iets totaal anders. Meer wat voor de echte excel kenners, niet voor de amateurs zoals ik denk ik.
 
Dat is niet de site van ctgb.nl.

Welke gegevens wil je erafplukken ?
 
Waarom zouden het json bestand meer gegevens bevatten dan het Excel bestand ?
 
Geen idee waarom, maar het excel bestand heeft minder info dan wat er via json te vinden is.
 
Een API heeft altijd actueele informatie.
Hier een begin, proof of concept.
Code:
Option Explicit

Public Sub CTGB_API()
    Dim lngData As Long
    Dim strURL As String
    Dim strResponseText As String
    On Error Resume Next
    'wissen
    Cells(1, 1).CurrentRegion.ClearContents
    'fetch
    strURL = "https://public.mst.ctgb.nl/public-api/1.0/masterdata/ppp/targetcrops?filter%5Bquery%5D=ar&filter%5Blocale%5D=nl&page%5Boffset%5D=0&page%5Blimit%5D=100"
    With CreateObject("msxml2.xmlhttp")
        .Open "GET", strURL, False
        .Send
        strResponseText = .ResponseText
        With CreateObject("ScriptControl")
            .Language = "JScript"
            For lngData = 0 To .Eval("(" + strResponseText + ").meta.total")
                Cells(lngData + 1, 1).Value = lngData
                Cells(lngData + 1, 2).Value = .Eval("(" + strResponseText + ").data[" & lngData & "].name")
                Cells(lngData + 1, 3).Value = .Eval("(" + strResponseText + ").data[" & lngData & "].type")
            Next
        End With
    End With
    'autofit
    Cells(1, 1).CurrentRegion.Columns.AutoFit
    'goto
    Application.Goto Cells(1, 1)
End Sub
 
Laatst bewerkt:
Ik denk dat mij dit te ingewikkeld word, ik had gedacht dat er een soort van excel bestand zou uitrollen die ik dan weer als bron kon gebruiken. Zo te lezen is api een klein deel van de informatie die dan word ververst of zo. Niet een complete lijst van gegevens.
Voor de gene die mee hebben gedacht in ieder geval bedankt.

mvg Appie
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan