【发布时间】:2017-03-14 21:46:21
【问题描述】:
我正在编写一段代码以从 JIRA 项目中提取问题,然后遍历每个问题以查看它是否已存在于 Excel 工作表中。对于任何一种结果,我都想添加一个新的键值组合,它本质上将标记问题是否存在,例如“存在”:“真实”。
我正在使用 Tim Hall 的 JSONConverter (VBA-JSON) 代码将 JSON 响应解析为 Excel 字典。现在我正在努力理解正确的语法,以便将新的键值添加到字典中。
示例 JSON:
"issues": [{
"expand": "operations,editmeta,changelog,transitions,renderedFields",
"id": "123456789",
"self": "url",
"key": "XY-12345",
"fields": {
"issuetype": {
"self": "url",
"id": "1",
"description": descrip.",
"iconUrl": "url",
"name": "Story",
"subtask": false
},
},
},
这就是我想要生成的(如果字典被解析回 JSON;请参阅“存在”):
"issues": [{
"expand": "operations,editmeta,changelog,transitions,renderedFields",
"id": "123456789",
"self": "url",
"key": "XY-12345",
"exists": "true",
"fields": {
"issuetype": {
"self": "url",
"id": "1",
"description": descrip.",
"iconUrl": "url",
"name": "Story",
"subtask": false
},
},
},
在代码方面,一旦我从 JIRA 检索到 JSON,我会使用以下方法进行转换:
Dim oDict as dictionary
Set oDict = ParseJSON(sJSON)
然后我尝试通过循环遍历所有问题将新项目添加到字典中:
for n=1 to oDict("issues").count
If dotfind(oDict("issues")(n)("key"),"r",sht) = 0 Then '//function to search if key exists
oDict.Add ("issues")(n)("exists"), "false"
Else
oDict.Add ("issues")(n)("exists"), "true"
End if
next n
最后,我希望能够调用下面的代码来获取存在的值
Cells(r,c) = oDict("issues")(n)("exists")
【问题讨论】:
-
当你尝试这样做会发生什么?
-
我无法运行代码,因为我在 'oDict.Add...' 上遇到错误 "编译错误:预期:="
-
示例 JSON 大括号和大括号不匹配,最好修复该问题以便为其他人进行测试。也请发布整个代码,包括
dotfind()。
标签: json excel vba dictionary jira-rest-api