gpt4 book ai didi

json - 如何获取 ("fields")在 VBA-JSON 中工作

转载 作者:行者123 更新时间:2023-12-04 20:56:43 25 4
gpt4 key购买 nike

概括

我正在尝试访问从我目前正在使用的 API 返回的深层嵌套 JSON。使用 VBA-JSON通过这个过程非常容易,但我遇到了一个小障碍。在大多数情况下,我已经让这个库正常工作,但是每当我尝试抓取嵌套在 JSON 响应中的项目(超过 2 个 JSON 级别)时,我都会收到错误消息。我将提交这篇文章,然后我会去收集一些我得到的错误代码。在我的脑海中,我知道我得到了 Run-time error '13'当我尝试使用下面的代码时不起作用。我认为(可能是错误的)我足够聪明,可以理解类型不匹配错误,但我不知道如何解决它。

这个作品

For i = 1 To 20
ActiveSheet.Cells(i + 1, 5) = Json("issues")(i)("key")
ActiveSheet.Cells(i + 1, 6) = Json("issues")(i)("id")
Next

不工作
For i = 1 To 20
ActiveSheet.Cells(i + 1, 7) = Json("fields")(i)("summary")
Next

这些都不起作用
ActiveSheet.Cells(i + 1, 7) = Json("fields")(i)("summary")
ActiveSheet.Cells(i + 1, 7) = Json("fields")("summary")
ActiveSheet.Cells(i + 1, 7) = Json("issues")("fields")("summary")

ActiveSheet.Cells(i + 1, 7) = Json("fields")("assignee")(i)("name")
ActiveSheet.Cells(i + 1, 7) = Json("issues")("fields")("assignee")(i)("name")

更新了一些 JSON

我编辑了出于隐私原因返回的 JSON(显然)。
{
"expand": "schema,names",
"startAt": 0,
"maxResults": 50,
"total": 28,
"issues": [ {
"expand": "",
"id": "94581",
"self": "",
"key": "",
"fields": {
, "assignee": {}
, "status": {}
, "votes": {}
, "summary": ""
,
, "issuetype": {}
, "timespent": null,
}
}
,
{}
,
{}
,
{}
]
}

根据这个数据结构,我的代码应该找对了地方,对吧?

想法? :)

PS:对不起,如果行话被关闭,我是一个爱好的开发人员,而不是工作。 :)

最佳答案

问题

嵌套数组实际上是问题所在。 JSON 项目的第 2 级不是数组,而“字段”是。

为了解决这个问题,我们需要在代码中添加一个 (i + 1)。

工作代码示例

''''''''
' Loop '
''''''''

For i = 1 To 20
ActiveSheet.Cells(i + 1, 5) = Json("issues")(i)("key")
ActiveSheet.Cells(i + 1, 6) = Json("issues")(i)("id")
ActiveSheet.Cells(i + 1, 7) = Json("issues")(i + 1)("fields")("summary")
ActiveSheet.Cells(i + 1, 8) = Json("issues")(i + 1)("fields")("watches")("watchCount")
ActiveSheet.Cells(i + 1, 9) = Json("issues")(i + 1)("fields")("workratio")
Next

更新 :(

所以,我设置了所有代码来运行我的报告,它正在工作,然后它随机停止(我在第 16 行左右看到它这样做)并给我另一个类型不匹配错误。

第 1-15 行是如何工作的,然后突然出现类型不匹配错误?

哈哈...

现在调试...

更新 2 :)

简单地与代码结构混合,没有问题,我在下面发布的解决方案可以正常工作。

关于json - 如何获取 ("fields")在 VBA-JSON 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46205368/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com