У меня есть следующие JSON данные
"data": [
{
"id": "816051",
"type": "jobs",
"links": {
"careersite-job-url": "https://workoab.teamtailor.com/jobs/gdsgds",
"careersite-job-apply-url": "https://workoab.teamtailor.com/jobs/816051-0220-gdsgds/applications/new?secret=d93b3a3a-c433-4564-a21c-d07096060365",
"careersite-job-apply-iframe-url": "https://workoab.teamtailor.com/jobs/816051-0220-gdsgds/applications/new?iframe=true&secret=d93b3a3a-c433-4564-a21c-d07096060365",
"self": "https://api.teamtailor.com/v1/jobs/816051"
},
"attributes": {
"apply-button-text": "",
"body": "<p>Används ej.</p>",
"end-date": null,
"human-status": "unlisted",
"internal": false,
"picture": null,
"pinned": false,
"start-date": null,
"status": "unlisted",
"tags": [],
"title": "blablablabal",
"pitch": "Används ej.",
"external-application-url": "",
"name-requirement": "optional",
"resume-requirement": "optional",
"cover-letter-requirement": "optional",
"phone-requirement": "optional",
"created-at": "2020-01-24T09:19:53.940+01:00",
"sharing-image-layout": "default",
"mailbox": "job-d93b3a3a-c433-4564-a21c-d07096060365@inbound.teamtailor.com"
},
"relationships": {
"stages": {
"links": {
"self": "https://api.teamtailor.com/v1/jobs/816051/relationships/stages",
"related": "https://api.teamtailor.com/v1/jobs/816051/stages"
},
"data": [
{
"type": "stages",
"id": "4494024"
},
{
"type": "stages",
"id": "4494023"
},
{
"type": "stages",
"id": "4494022"
},
{
"type": "stages",
"id": "4494021"
},
{
"type": "stages",
"id": "4494020"
},
{
"type": "stages",
"id": "4494019"
},
{
"type": "stages",
"id": "4494018"
},
{
"type": "stages",
"id": "4494017"
},
{
"type": "stages",
"id": "4494016"
},
{
"type": "stages",
"id": "4494015"
},
{
"type": "stages",
"id": "4494014"
},
{
"type": "stages",
"id": "4494013"
},
{
"type": "stages",
"id": "4494012"
},
{
"type": "stages",
"id": "4494011"
Я пытаюсь получить все идентификаторы с помощью VBA jsonparser, но мне не удается получить его - я могу получить все другие данные ... ау.
Я пытался использовать Select Case item.name и Case "data" - но тогда я не знаю, как вызвать эти данные - или, возможно, моя идея просто неверна. Ie Я попытался ниже "для каждого элемента" добавить "выберите регистр" id ", но это только что дало мне ошибку ..
Мой код в настоящее время похож на это - который не возвращает различные уровни" id "
Option Explicit
Sub getdata()
Dim ws As Worksheet: Set ws = Worksheets("Datalastcall")
Sheets("DataLastCall").Select
Dim i As Long
i = 2
Dim nexturl As String
nexturl = "https://api.teamtailor.com/v1/jobs?include=stages&filter%5Bstatus%5D=unlisted"
Dim http As Object
Dim Url As String
Set http = CreateObject("WinHttp.WinHttpRequest.5.1")
With http
.Open "Get", Url, False
.SetRequestHeader "Accept", "application/vnd.api+json"
.SetRequestHeader "X-Api-Version", "20161108"
.SetRequestHeader "Authorization", "My Token"
.Send
End With
JSONresp = http.ResponseText
Set jsonObject = JsonConverter.ParseJson(JSONresp)
Dim dataitem1 As Dictionary
Dim dataitem2 As Dictionary
Dim p As Long
p = 3
For Each dataitem1 In jsonObject("data")
ws.Cells(i, 1) = dataitem1("attributes")("title")
ws.Cells(i, 2) = dataitem1("id")
last = jsonObject("links")("last")
nexturl = jsonObject("links")("next")
For Each dataitem2 In dataitem1("relationships")("stages")("data")
ws.Cells(i, p) = dataitem2("id")
p=p+1
Next
i = i + 1
p=3
Next
End Sub
Я получаю недопустимую процедуру. Я пробовал несколько других способов соединения с (1), так как кажется, что второй набор данных - это другой массив, и выберите case et c, но я не могу заставить его работать .. код работает нормально, получая все остальные данные для меня. Я также пытался переключаться между «как словарь» и «как объект»
Я был бы очень признателен за любую помощь в том, как получить разные «Идентификаторы находятся под этапами. Я предполагаю, что проблема заключается в нескольких уровнях одинаковых имен вариантов. ie и« данные », и« идентификатор »?
output now looks like this... ie not getting each different stage id - and not matchning to my other "gets"
Jobname JobID Stageid1 Stageid2 Stageid3
Blablajobb 1234 567 567 567
BLANK?! Blank 568 568 568