Visual FoxPro Jira - Issues: Get an Issue

Back to Index

Returns a full representation of the issue for the given issue key or ID. This example returns the JSON for the issue with key = "SCRUM-15".

Documentation: https://developers.atlassian.com/cloud/jira/platform/rest/#api-api-2-issue-issueIdOrKey-get

CURL Command

curl --user jira@example.com:JIRA_API_TOKEN \
  --header 'Accept: application/json' \
  --url 'https://your-domain.atlassian.net/rest/api/2/issue/SCRUM-15'

Visual FoxPro Example

LOCAL loRest
LOCAL lnSuccess
LOCAL lnBTls
LOCAL lnPort
LOCAL lnBAutoReconnect
LOCAL loSbResponseBody
LOCAL lnRespStatusCode
LOCAL loJsonResponse
LOCAL lcExpand
LOCAL lcId
LOCAL lcSelf
LOCAL lcKey
LOCAL lcFieldsIssuetypeSelf
LOCAL lcFieldsIssuetypeId
LOCAL lcFieldsIssuetypeDescription
LOCAL lcFieldsIssuetypeIconUrl
LOCAL lcFieldsIssuetypeName
LOCAL lnFieldsIssuetypeSubtask
LOCAL lnFieldsTimespent
LOCAL lcFieldsProjectSelf
LOCAL lcFieldsProjectId
LOCAL lcFieldsProjectKey
LOCAL lcFieldsProjectName
LOCAL lcFieldsProjectProjectTypeKey
LOCAL lcFieldsProjectAvatarUrls48x48
LOCAL lcFieldsProjectAvatarUrls24x24
LOCAL lcFieldsProjectAvatarUrls16x16
LOCAL lcFieldsProjectAvatarUrls32x32
LOCAL lcFieldsProjectProjectCategorySelf
LOCAL lcFieldsProjectProjectCategoryId
LOCAL lcFieldsProjectProjectCategoryDescription
LOCAL lcFieldsProjectProjectCategoryName
LOCAL lnFieldsAggregatetimespent
LOCAL lcFieldsResolutionSelf
LOCAL lcFieldsResolutionId
LOCAL lcFieldsResolutionDescription
LOCAL lcFieldsResolutionName
LOCAL lcFieldsCustomfield_10027
LOCAL lcFieldsCustomfield_10028
LOCAL lcFieldsCustomfield_10029
LOCAL lcFieldsResolutiondate
LOCAL lnFieldsWorkratio
LOCAL lcFieldsWatchesSelf
LOCAL lnFieldsWatchesWatchCount
LOCAL lnFieldsWatchesIsWatching
LOCAL lcFieldsLastViewed
LOCAL lcFieldsCreated
LOCAL lnFieldsCustomfield_10022
LOCAL lcFieldsCustomfield_10023
LOCAL lcFieldsPrioritySelf
LOCAL lcFieldsPriorityIconUrl
LOCAL lcFieldsPriorityName
LOCAL lcFieldsPriorityId
LOCAL lcFieldsCustomfield_10024
LOCAL lcFieldsCustomfield_10025
LOCAL lcFieldsCustomfield_10026
LOCAL lnFieldsCustomfield_10017
LOCAL lnFieldsCustomfield_10018
LOCAL lnFieldsCustomfield_10019
LOCAL lnFieldsAggregatetimeoriginalestimate
LOCAL lnFieldsTimeestimate
LOCAL lcFieldsAssigneeSelf
LOCAL lcFieldsAssigneeName
LOCAL lcFieldsAssigneeKey
LOCAL lcFieldsAssigneeAccountId
LOCAL lcFieldsAssigneeEmailAddress
LOCAL lcFieldsAssigneeAvatarUrls48x48
LOCAL lcFieldsAssigneeAvatarUrls24x24
LOCAL lcFieldsAssigneeAvatarUrls16x16
LOCAL lcFieldsAssigneeAvatarUrls32x32
LOCAL lcFieldsAssigneeDisplayName
LOCAL lnFieldsAssigneeActive
LOCAL lcFieldsAssigneeTimeZone
LOCAL lcFieldsUpdated
LOCAL lcFieldsStatusSelf
LOCAL lcFieldsStatusDescription
LOCAL lcFieldsStatusIconUrl
LOCAL lcFieldsStatusName
LOCAL lcFieldsStatusId
LOCAL lcFieldsStatusStatusCategorySelf
LOCAL lnFieldsStatusStatusCategoryId
LOCAL lcFieldsStatusStatusCategoryKey
LOCAL lcFieldsStatusStatusCategoryColorName
LOCAL lcFieldsStatusStatusCategoryName
LOCAL lnFieldsTimeoriginalestimate
LOCAL lnFieldsDescription
LOCAL lcFieldsCustomfield_10011
LOCAL lnFieldsCustomfield_10012
LOCAL lcFieldsCustomfield_10013
LOCAL lnFieldsCustomfield_10014
LOCAL lnFieldsCustomfield_10015
LOCAL lnFieldsSecurity
LOCAL lnFieldsCustomfield_10008
LOCAL lnFieldsAggregatetimeestimate
LOCAL lnFieldsCustomfield_10009
LOCAL lcFieldsSummary
LOCAL lcFieldsCreatorSelf
LOCAL lcFieldsCreatorName
LOCAL lcFieldsCreatorKey
LOCAL lcFieldsCreatorAccountId
LOCAL lcFieldsCreatorEmailAddress
LOCAL lcFieldsCreatorAvatarUrls48x48
LOCAL lcFieldsCreatorAvatarUrls24x24
LOCAL lcFieldsCreatorAvatarUrls16x16
LOCAL lcFieldsCreatorAvatarUrls32x32
LOCAL lcFieldsCreatorDisplayName
LOCAL lnFieldsCreatorActive
LOCAL lcFieldsCreatorTimeZone
LOCAL lcFieldsReporterSelf
LOCAL lcFieldsReporterName
LOCAL lcFieldsReporterKey
LOCAL lcFieldsReporterAccountId
LOCAL lcFieldsReporterEmailAddress
LOCAL lcFieldsReporterAvatarUrls48x48
LOCAL lcFieldsReporterAvatarUrls24x24
LOCAL lcFieldsReporterAvatarUrls16x16
LOCAL lcFieldsReporterAvatarUrls32x32
LOCAL lcFieldsReporterDisplayName
LOCAL lnFieldsReporterActive
LOCAL lcFieldsReporterTimeZone
LOCAL lcFieldsCustomfield_10000
LOCAL lnFieldsAggregateprogressProgress
LOCAL lnFieldsAggregateprogressTotal
LOCAL lnFieldsCustomfield_10001
LOCAL lnFieldsCustomfield_10002
LOCAL lcFieldsCustomfield_10003
LOCAL lnFieldsCustomfield_10004
LOCAL lnFieldsEnvironment
LOCAL lnFieldsDuedate
LOCAL lnFieldsProgressProgress
LOCAL lnFieldsProgressTotal
LOCAL lcFieldsVotesSelf
LOCAL lnFieldsVotesVotes
LOCAL lnFieldsVotesHasVoted
LOCAL lnFieldsCommentMaxResults
LOCAL lnFieldsCommentTotal
LOCAL lnFieldsCommentStartAt
LOCAL lnFieldsWorklogStartAt
LOCAL lnFieldsWorklogMaxResults
LOCAL lnFieldsWorklogTotal
LOCAL i
LOCAL lnCount_i
LOCAL lcStrVal
LOCAL lcAuthorSelf
LOCAL lcAuthorName
LOCAL lcAuthorKey
LOCAL lcAuthorAccountId
LOCAL lcAuthorEmailAddress
LOCAL lcAuthorAvatarUrls48x48
LOCAL lcAuthorAvatarUrls24x24
LOCAL lcAuthorAvatarUrls16x16
LOCAL lcAuthorAvatarUrls32x32
LOCAL lcAuthorDisplayName
LOCAL lnAuthorActive
LOCAL lcAuthorTimeZone
LOCAL lcBody
LOCAL lcUpdateAuthorSelf
LOCAL lcUpdateAuthorName
LOCAL lcUpdateAuthorKey
LOCAL lcUpdateAuthorAccountId
LOCAL lcUpdateAuthorEmailAddress
LOCAL lcUpdateAuthorAvatarUrls48x48
LOCAL lcUpdateAuthorAvatarUrls24x24
LOCAL lcUpdateAuthorAvatarUrls16x16
LOCAL lcUpdateAuthorAvatarUrls32x32
LOCAL lcUpdateAuthorDisplayName
LOCAL lnUpdateAuthorActive
LOCAL lcUpdateAuthorTimeZone
LOCAL lcCreated
LOCAL lcUpdated

loRest = CreateObject('Chilkat_9_5_0.Rest')

*  URL: https://your-domain.atlassian.net/rest/api/2/issue/SCRUM-15
lnBTls = 1
lnPort = 443
lnBAutoReconnect = 1
lnSuccess = loRest.Connect("your-domain.atlassian.net",lnPort,lnBTls,lnBAutoReconnect)
IF (lnSuccess <> 1) THEN
    ? "ConnectFailReason: " + STR(loRest.ConnectFailReason)
    ? loRest.LastErrorText
    RELEASE loRest
    CANCEL
ENDIF

loRest.SetAuthBasic("jira@example.com","JIRA_API_TOKEN")

loRest.AddHeader("Accept","application/json")

loSbResponseBody = CreateObject('Chilkat_9_5_0.StringBuilder')
lnSuccess = loRest.FullRequestNoBodySb("GET","/rest/api/2/issue/SCRUM-15",loSbResponseBody)
IF (lnSuccess <> 1) THEN
    ? loRest.LastErrorText
    RELEASE loRest
    RELEASE loSbResponseBody
    CANCEL
ENDIF

lnRespStatusCode = loRest.ResponseStatusCode
IF (lnRespStatusCode >= 400) THEN
    ? "Response Status Code = " + STR(lnRespStatusCode)
    ? "Response Header:"
    ? loRest.ResponseHeader
    ? "Response Body:"
    ? loSbResponseBody.GetAsString()
    RELEASE loRest
    RELEASE loSbResponseBody
    CANCEL
ENDIF

loJsonResponse = CreateObject('Chilkat_9_5_0.JsonObject')
loJsonResponse.LoadSb(loSbResponseBody)

lcExpand = loJsonResponse.StringOf("expand")
lcId = loJsonResponse.StringOf("id")
lcSelf = loJsonResponse.StringOf("self")
lcKey = loJsonResponse.StringOf("key")
lcFieldsIssuetypeSelf = loJsonResponse.StringOf("fields.issuetype.self")
lcFieldsIssuetypeId = loJsonResponse.StringOf("fields.issuetype.id")
lcFieldsIssuetypeDescription = loJsonResponse.StringOf("fields.issuetype.description")
lcFieldsIssuetypeIconUrl = loJsonResponse.StringOf("fields.issuetype.iconUrl")
lcFieldsIssuetypeName = loJsonResponse.StringOf("fields.issuetype.name")
lnFieldsIssuetypeSubtask = loJsonResponse.BoolOf("fields.issuetype.subtask")
lnFieldsTimespent = loJsonResponse.IsNullOf("fields.timespent")
lcFieldsProjectSelf = loJsonResponse.StringOf("fields.project.self")
lcFieldsProjectId = loJsonResponse.StringOf("fields.project.id")
lcFieldsProjectKey = loJsonResponse.StringOf("fields.project.key")
lcFieldsProjectName = loJsonResponse.StringOf("fields.project.name")
lcFieldsProjectProjectTypeKey = loJsonResponse.StringOf("fields.project.projectTypeKey")
lcFieldsProjectAvatarUrls48x48 = loJsonResponse.StringOf("fields.project.avatarUrls.48x48")
lcFieldsProjectAvatarUrls24x24 = loJsonResponse.StringOf("fields.project.avatarUrls.24x24")
lcFieldsProjectAvatarUrls16x16 = loJsonResponse.StringOf("fields.project.avatarUrls.16x16")
lcFieldsProjectAvatarUrls32x32 = loJsonResponse.StringOf("fields.project.avatarUrls.32x32")
lcFieldsProjectProjectCategorySelf = loJsonResponse.StringOf("fields.project.projectCategory.self")
lcFieldsProjectProjectCategoryId = loJsonResponse.StringOf("fields.project.projectCategory.id")
lcFieldsProjectProjectCategoryDescription = loJsonResponse.StringOf("fields.project.projectCategory.description")
lcFieldsProjectProjectCategoryName = loJsonResponse.StringOf("fields.project.projectCategory.name")
lnFieldsAggregatetimespent = loJsonResponse.IsNullOf("fields.aggregatetimespent")
lcFieldsResolutionSelf = loJsonResponse.StringOf("fields.resolution.self")
lcFieldsResolutionId = loJsonResponse.StringOf("fields.resolution.id")
lcFieldsResolutionDescription = loJsonResponse.StringOf("fields.resolution.description")
lcFieldsResolutionName = loJsonResponse.StringOf("fields.resolution.name")
lcFieldsCustomfield_10027 = loJsonResponse.StringOf("fields.customfield_10027")
lcFieldsCustomfield_10028 = loJsonResponse.StringOf("fields.customfield_10028")
lcFieldsCustomfield_10029 = loJsonResponse.StringOf("fields.customfield_10029")
lcFieldsResolutiondate = loJsonResponse.StringOf("fields.resolutiondate")
lnFieldsWorkratio = loJsonResponse.IntOf("fields.workratio")
lcFieldsWatchesSelf = loJsonResponse.StringOf("fields.watches.self")
lnFieldsWatchesWatchCount = loJsonResponse.IntOf("fields.watches.watchCount")
lnFieldsWatchesIsWatching = loJsonResponse.BoolOf("fields.watches.isWatching")
lcFieldsLastViewed = loJsonResponse.StringOf("fields.lastViewed")
lcFieldsCreated = loJsonResponse.StringOf("fields.created")
lnFieldsCustomfield_10022 = loJsonResponse.IsNullOf("fields.customfield_10022")
lcFieldsCustomfield_10023 = loJsonResponse.StringOf("fields.customfield_10023")
lcFieldsPrioritySelf = loJsonResponse.StringOf("fields.priority.self")
lcFieldsPriorityIconUrl = loJsonResponse.StringOf("fields.priority.iconUrl")
lcFieldsPriorityName = loJsonResponse.StringOf("fields.priority.name")
lcFieldsPriorityId = loJsonResponse.StringOf("fields.priority.id")
lcFieldsCustomfield_10024 = loJsonResponse.StringOf("fields.customfield_10024")
lcFieldsCustomfield_10025 = loJsonResponse.StringOf("fields.customfield_10025")
lcFieldsCustomfield_10026 = loJsonResponse.StringOf("fields.customfield_10026")
lnFieldsCustomfield_10017 = loJsonResponse.IsNullOf("fields.customfield_10017")
lnFieldsCustomfield_10018 = loJsonResponse.IsNullOf("fields.customfield_10018")
lnFieldsCustomfield_10019 = loJsonResponse.IntOf("fields.customfield_10019")
lnFieldsAggregatetimeoriginalestimate = loJsonResponse.IsNullOf("fields.aggregatetimeoriginalestimate")
lnFieldsTimeestimate = loJsonResponse.IsNullOf("fields.timeestimate")
lcFieldsAssigneeSelf = loJsonResponse.StringOf("fields.assignee.self")
lcFieldsAssigneeName = loJsonResponse.StringOf("fields.assignee.name")
lcFieldsAssigneeKey = loJsonResponse.StringOf("fields.assignee.key")
lcFieldsAssigneeAccountId = loJsonResponse.StringOf("fields.assignee.accountId")
lcFieldsAssigneeEmailAddress = loJsonResponse.StringOf("fields.assignee.emailAddress")
lcFieldsAssigneeAvatarUrls48x48 = loJsonResponse.StringOf("fields.assignee.avatarUrls.48x48")
lcFieldsAssigneeAvatarUrls24x24 = loJsonResponse.StringOf("fields.assignee.avatarUrls.24x24")
lcFieldsAssigneeAvatarUrls16x16 = loJsonResponse.StringOf("fields.assignee.avatarUrls.16x16")
lcFieldsAssigneeAvatarUrls32x32 = loJsonResponse.StringOf("fields.assignee.avatarUrls.32x32")
lcFieldsAssigneeDisplayName = loJsonResponse.StringOf("fields.assignee.displayName")
lnFieldsAssigneeActive = loJsonResponse.BoolOf("fields.assignee.active")
lcFieldsAssigneeTimeZone = loJsonResponse.StringOf("fields.assignee.timeZone")
lcFieldsUpdated = loJsonResponse.StringOf("fields.updated")
lcFieldsStatusSelf = loJsonResponse.StringOf("fields.status.self")
lcFieldsStatusDescription = loJsonResponse.StringOf("fields.status.description")
lcFieldsStatusIconUrl = loJsonResponse.StringOf("fields.status.iconUrl")
lcFieldsStatusName = loJsonResponse.StringOf("fields.status.name")
lcFieldsStatusId = loJsonResponse.StringOf("fields.status.id")
lcFieldsStatusStatusCategorySelf = loJsonResponse.StringOf("fields.status.statusCategory.self")
lnFieldsStatusStatusCategoryId = loJsonResponse.IntOf("fields.status.statusCategory.id")
lcFieldsStatusStatusCategoryKey = loJsonResponse.StringOf("fields.status.statusCategory.key")
lcFieldsStatusStatusCategoryColorName = loJsonResponse.StringOf("fields.status.statusCategory.colorName")
lcFieldsStatusStatusCategoryName = loJsonResponse.StringOf("fields.status.statusCategory.name")
lnFieldsTimeoriginalestimate = loJsonResponse.IsNullOf("fields.timeoriginalestimate")
lnFieldsDescription = loJsonResponse.IsNullOf("fields.description")
lcFieldsCustomfield_10011 = loJsonResponse.StringOf("fields.customfield_10011")
lnFieldsCustomfield_10012 = loJsonResponse.IsNullOf("fields.customfield_10012")
lcFieldsCustomfield_10013 = loJsonResponse.StringOf("fields.customfield_10013")
lnFieldsCustomfield_10014 = loJsonResponse.IsNullOf("fields.customfield_10014")
lnFieldsCustomfield_10015 = loJsonResponse.IsNullOf("fields.customfield_10015")
lnFieldsSecurity = loJsonResponse.IsNullOf("fields.security")
lnFieldsCustomfield_10008 = loJsonResponse.IsNullOf("fields.customfield_10008")
lnFieldsAggregatetimeestimate = loJsonResponse.IsNullOf("fields.aggregatetimeestimate")
lnFieldsCustomfield_10009 = loJsonResponse.IsNullOf("fields.customfield_10009")
lcFieldsSummary = loJsonResponse.StringOf("fields.summary")
lcFieldsCreatorSelf = loJsonResponse.StringOf("fields.creator.self")
lcFieldsCreatorName = loJsonResponse.StringOf("fields.creator.name")
lcFieldsCreatorKey = loJsonResponse.StringOf("fields.creator.key")
lcFieldsCreatorAccountId = loJsonResponse.StringOf("fields.creator.accountId")
lcFieldsCreatorEmailAddress = loJsonResponse.StringOf("fields.creator.emailAddress")
lcFieldsCreatorAvatarUrls48x48 = loJsonResponse.StringOf("fields.creator.avatarUrls.48x48")
lcFieldsCreatorAvatarUrls24x24 = loJsonResponse.StringOf("fields.creator.avatarUrls.24x24")
lcFieldsCreatorAvatarUrls16x16 = loJsonResponse.StringOf("fields.creator.avatarUrls.16x16")
lcFieldsCreatorAvatarUrls32x32 = loJsonResponse.StringOf("fields.creator.avatarUrls.32x32")
lcFieldsCreatorDisplayName = loJsonResponse.StringOf("fields.creator.displayName")
lnFieldsCreatorActive = loJsonResponse.BoolOf("fields.creator.active")
lcFieldsCreatorTimeZone = loJsonResponse.StringOf("fields.creator.timeZone")
lcFieldsReporterSelf = loJsonResponse.StringOf("fields.reporter.self")
lcFieldsReporterName = loJsonResponse.StringOf("fields.reporter.name")
lcFieldsReporterKey = loJsonResponse.StringOf("fields.reporter.key")
lcFieldsReporterAccountId = loJsonResponse.StringOf("fields.reporter.accountId")
lcFieldsReporterEmailAddress = loJsonResponse.StringOf("fields.reporter.emailAddress")
lcFieldsReporterAvatarUrls48x48 = loJsonResponse.StringOf("fields.reporter.avatarUrls.48x48")
lcFieldsReporterAvatarUrls24x24 = loJsonResponse.StringOf("fields.reporter.avatarUrls.24x24")
lcFieldsReporterAvatarUrls16x16 = loJsonResponse.StringOf("fields.reporter.avatarUrls.16x16")
lcFieldsReporterAvatarUrls32x32 = loJsonResponse.StringOf("fields.reporter.avatarUrls.32x32")
lcFieldsReporterDisplayName = loJsonResponse.StringOf("fields.reporter.displayName")
lnFieldsReporterActive = loJsonResponse.BoolOf("fields.reporter.active")
lcFieldsReporterTimeZone = loJsonResponse.StringOf("fields.reporter.timeZone")
lcFieldsCustomfield_10000 = loJsonResponse.StringOf("fields.customfield_10000")
lnFieldsAggregateprogressProgress = loJsonResponse.IntOf("fields.aggregateprogress.progress")
lnFieldsAggregateprogressTotal = loJsonResponse.IntOf("fields.aggregateprogress.total")
lnFieldsCustomfield_10001 = loJsonResponse.IsNullOf("fields.customfield_10001")
lnFieldsCustomfield_10002 = loJsonResponse.IsNullOf("fields.customfield_10002")
lcFieldsCustomfield_10003 = loJsonResponse.StringOf("fields.customfield_10003")
lnFieldsCustomfield_10004 = loJsonResponse.IsNullOf("fields.customfield_10004")
lnFieldsEnvironment = loJsonResponse.IsNullOf("fields.environment")
lnFieldsDuedate = loJsonResponse.IsNullOf("fields.duedate")
lnFieldsProgressProgress = loJsonResponse.IntOf("fields.progress.progress")
lnFieldsProgressTotal = loJsonResponse.IntOf("fields.progress.total")
lcFieldsVotesSelf = loJsonResponse.StringOf("fields.votes.self")
lnFieldsVotesVotes = loJsonResponse.IntOf("fields.votes.votes")
lnFieldsVotesHasVoted = loJsonResponse.BoolOf("fields.votes.hasVoted")
lnFieldsCommentMaxResults = loJsonResponse.IntOf("fields.comment.maxResults")
lnFieldsCommentTotal = loJsonResponse.IntOf("fields.comment.total")
lnFieldsCommentStartAt = loJsonResponse.IntOf("fields.comment.startAt")
lnFieldsWorklogStartAt = loJsonResponse.IntOf("fields.worklog.startAt")
lnFieldsWorklogMaxResults = loJsonResponse.IntOf("fields.worklog.maxResults")
lnFieldsWorklogTotal = loJsonResponse.IntOf("fields.worklog.total")
i = 0
lnCount_i = loJsonResponse.SizeOfArray("fields.fixVersions")
DO WHILE i < lnCount_i
    loJsonResponse.I = i
    i = i + 1
ENDDO
i = 0
lnCount_i = loJsonResponse.SizeOfArray("fields.labels")
DO WHILE i < lnCount_i
    loJsonResponse.I = i
    i = i + 1
ENDDO
i = 0
lnCount_i = loJsonResponse.SizeOfArray("fields.customfield_10016")
DO WHILE i < lnCount_i
    loJsonResponse.I = i
    i = i + 1
ENDDO
i = 0
lnCount_i = loJsonResponse.SizeOfArray("fields.versions")
DO WHILE i < lnCount_i
    loJsonResponse.I = i
    i = i + 1
ENDDO
i = 0
lnCount_i = loJsonResponse.SizeOfArray("fields.issuelinks")
DO WHILE i < lnCount_i
    loJsonResponse.I = i
    i = i + 1
ENDDO
i = 0
lnCount_i = loJsonResponse.SizeOfArray("fields.components")
DO WHILE i < lnCount_i
    loJsonResponse.I = i
    i = i + 1
ENDDO
i = 0
lnCount_i = loJsonResponse.SizeOfArray("fields.customfield_10010")
DO WHILE i < lnCount_i
    loJsonResponse.I = i
    lcStrVal = loJsonResponse.StringOf("fields.customfield_10010[i]")
    i = i + 1
ENDDO
i = 0
lnCount_i = loJsonResponse.SizeOfArray("fields.attachment")
DO WHILE i < lnCount_i
    loJsonResponse.I = i
    i = i + 1
ENDDO
i = 0
lnCount_i = loJsonResponse.SizeOfArray("fields.subtasks")
DO WHILE i < lnCount_i
    loJsonResponse.I = i
    i = i + 1
ENDDO
i = 0
lnCount_i = loJsonResponse.SizeOfArray("fields.comment.comments")
DO WHILE i < lnCount_i
    loJsonResponse.I = i
    lcSelf = loJsonResponse.StringOf("fields.comment.comments[i].self")
    lcId = loJsonResponse.StringOf("fields.comment.comments[i].id")
    lcAuthorSelf = loJsonResponse.StringOf("fields.comment.comments[i].author.self")
    lcAuthorName = loJsonResponse.StringOf("fields.comment.comments[i].author.name")
    lcAuthorKey = loJsonResponse.StringOf("fields.comment.comments[i].author.key")
    lcAuthorAccountId = loJsonResponse.StringOf("fields.comment.comments[i].author.accountId")
    lcAuthorEmailAddress = loJsonResponse.StringOf("fields.comment.comments[i].author.emailAddress")
    lcAuthorAvatarUrls48x48 = loJsonResponse.StringOf("fields.comment.comments[i].author.avatarUrls.48x48")
    lcAuthorAvatarUrls24x24 = loJsonResponse.StringOf("fields.comment.comments[i].author.avatarUrls.24x24")
    lcAuthorAvatarUrls16x16 = loJsonResponse.StringOf("fields.comment.comments[i].author.avatarUrls.16x16")
    lcAuthorAvatarUrls32x32 = loJsonResponse.StringOf("fields.comment.comments[i].author.avatarUrls.32x32")
    lcAuthorDisplayName = loJsonResponse.StringOf("fields.comment.comments[i].author.displayName")
    lnAuthorActive = loJsonResponse.BoolOf("fields.comment.comments[i].author.active")
    lcAuthorTimeZone = loJsonResponse.StringOf("fields.comment.comments[i].author.timeZone")
    lcBody = loJsonResponse.StringOf("fields.comment.comments[i].body")
    lcUpdateAuthorSelf = loJsonResponse.StringOf("fields.comment.comments[i].updateAuthor.self")
    lcUpdateAuthorName = loJsonResponse.StringOf("fields.comment.comments[i].updateAuthor.name")
    lcUpdateAuthorKey = loJsonResponse.StringOf("fields.comment.comments[i].updateAuthor.key")
    lcUpdateAuthorAccountId = loJsonResponse.StringOf("fields.comment.comments[i].updateAuthor.accountId")
    lcUpdateAuthorEmailAddress = loJsonResponse.StringOf("fields.comment.comments[i].updateAuthor.emailAddress")
    lcUpdateAuthorAvatarUrls48x48 = loJsonResponse.StringOf("fields.comment.comments[i].updateAuthor.avatarUrls.48x48")
    lcUpdateAuthorAvatarUrls24x24 = loJsonResponse.StringOf("fields.comment.comments[i].updateAuthor.avatarUrls.24x24")
    lcUpdateAuthorAvatarUrls16x16 = loJsonResponse.StringOf("fields.comment.comments[i].updateAuthor.avatarUrls.16x16")
    lcUpdateAuthorAvatarUrls32x32 = loJsonResponse.StringOf("fields.comment.comments[i].updateAuthor.avatarUrls.32x32")
    lcUpdateAuthorDisplayName = loJsonResponse.StringOf("fields.comment.comments[i].updateAuthor.displayName")
    lnUpdateAuthorActive = loJsonResponse.BoolOf("fields.comment.comments[i].updateAuthor.active")
    lcUpdateAuthorTimeZone = loJsonResponse.StringOf("fields.comment.comments[i].updateAuthor.timeZone")
    lcCreated = loJsonResponse.StringOf("fields.comment.comments[i].created")
    lcUpdated = loJsonResponse.StringOf("fields.comment.comments[i].updated")
    i = i + 1
ENDDO
i = 0
lnCount_i = loJsonResponse.SizeOfArray("fields.worklog.worklogs")
DO WHILE i < lnCount_i
    loJsonResponse.I = i
    i = i + 1
ENDDO

RELEASE loRest
RELEASE loSbResponseBody
RELEASE loJsonResponse

Sample JSON Response Body

{
  "expand": "renderedFields,names,schema,operations,editmeta,changelog,versionedRepresentations",
  "id": "10014",
  "self": "https://chilkat.atlassian.net/rest/api/2/issue/10014",
  "key": "SCRUM-15",
  "fields": {
    "issuetype": {
      "self": "https://chilkat.atlassian.net/rest/api/2/issuetype/10001",
      "id": "10001",
      "description": "Stories track functionality or features expressed as user goals.",
      "iconUrl": "https://chilkat.atlassian.net/images/icons/issuetypes/story.svg",
      "name": "Story",
      "subtask": false
    },
    "timespent": null,
    "project": {
      "self": "https://chilkat.atlassian.net/rest/api/2/project/10000",
      "id": "10000",
      "key": "SCRUM",
      "name": "Scrumsoft",
      "projectTypeKey": "software",
      "avatarUrls": {
        "48x48": "https://chilkat.atlassian.net/secure/projectavatar?pid=10000&avatarId=10400",
        "24x24": "https://chilkat.atlassian.net/secure/projectavatar?size=small&pid=10000&avatarId=10400",
        "16x16": "https://chilkat.atlassian.net/secure/projectavatar?size=xsmall&pid=10000&avatarId=10400",
        "32x32": "https://chilkat.atlassian.net/secure/projectavatar?size=medium&pid=10000&avatarId=10400"
      },
      "projectCategory": {
        "self": "https://chilkat.atlassian.net/rest/api/2/projectCategory/10002",
        "id": "10002",
        "description": "Insane Projects",
        "name": "Insane"
      }
    },
    "fixVersions": [
    ],
    "aggregatetimespent": null,
    "resolution": {
      "self": "https://chilkat.atlassian.net/rest/api/2/resolution/10000",
      "id": "10000",
      "description": "Work has been completed on this issue.",
      "name": "Done"
    },
    "customfield_10027": "",
    "customfield_10028": "",
    "customfield_10029": "",
    "resolutiondate": "2018-04-08T00:33:55.852-0500",
    "workratio": -1,
    "watches": {
      "self": "https://chilkat.atlassian.net/rest/api/2/issue/SCRUM-15/watchers",
      "watchCount": 0,
      "isWatching": false
    },
    "lastViewed": "2018-04-12T20:07:08.181-0500",
    "created": "2018-04-03T09:57:55.852-0500",
    "customfield_10022": null,
    "customfield_10023": "",
    "priority": {
      "self": "https://chilkat.atlassian.net/rest/api/2/priority/3",
      "iconUrl": "https://chilkat.atlassian.net/images/icons/priorities/medium.svg",
      "name": "Medium",
      "id": "3"
    },
    "customfield_10024": "",
    "customfield_10025": "",
    "customfield_10026": "",
    "labels": [
    ],
    "customfield_10016": [
    ],
    "customfield_10017": null,
    "customfield_10018": null,
    "customfield_10019": 4.0,
    "aggregatetimeoriginalestimate": null,
    "timeestimate": null,
    "versions": [
    ],
    "issuelinks": [
    ],
    "assignee": {
      "self": "https://chilkat.atlassian.net/rest/api/2/user?username=matt",
      "name": "matt",
      "key": "matt",
      "accountId": "5acf82d7926ac92a7c0d7bd3",
      "emailAddress": "matt@@chilkat.io",
      "avatarUrls": {
        "48x48": "https://avatar-cdn.atlassian.com/ae220e85f283d0ecea372e06ad2261d3?s=48&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2Fae220e85f283d0ecea372e06ad2261d3%3Fd%3Dmm%26s%3D48%26noRedirect%3Dtrue",
        "24x24": "https://avatar-cdn.atlassian.com/ae220e85f283d0ecea372e06ad2261d3?s=24&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2Fae220e85f283d0ecea372e06ad2261d3%3Fd%3Dmm%26s%3D24%26noRedirect%3Dtrue",
        "16x16": "https://avatar-cdn.atlassian.com/ae220e85f283d0ecea372e06ad2261d3?s=16&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2Fae220e85f283d0ecea372e06ad2261d3%3Fd%3Dmm%26s%3D16%26noRedirect%3Dtrue",
        "32x32": "https://avatar-cdn.atlassian.com/ae220e85f283d0ecea372e06ad2261d3?s=32&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2Fae220e85f283d0ecea372e06ad2261d3%3Fd%3Dmm%26s%3D32%26noRedirect%3Dtrue"
      },
      "displayName": "Matt of Chilkat",
      "active": true,
      "timeZone": "America/Chicago"
    },
    "updated": "2018-04-12T20:07:08.104-0500",
    "status": {
      "self": "https://chilkat.atlassian.net/rest/api/2/status/10001",
      "description": "",
      "iconUrl": "https://chilkat.atlassian.net/",
      "name": "Done",
      "id": "10001",
      "statusCategory": {
        "self": "https://chilkat.atlassian.net/rest/api/2/statuscategory/3",
        "id": 3,
        "key": "done",
        "colorName": "green",
        "name": "Done"
      }
    },
    "components": [
    ],
    "timeoriginalestimate": null,
    "description": null,
    "customfield_10010": [
      "com.atlassian.greenhopper.service.sprint.Sprint@@3aaca4f7[id=1,rapidViewId=1,state=ACTIVE,name=Sample Sprint 2,goal=<null>,startDate=2018-04-03T14:57:57.335Z,endDate=2018-04-17T15:17:57.335Z,completeDate=<null>,sequence=1]"
    ],
    "customfield_10011": "0|i0000n:",
    "customfield_10012": null,
    "customfield_10013": "3_*:*_1_*:*_208320000_*|*_10000_*:*_1_*:*_189840000_*|*_10001_*:*_1_*:*_0",
    "customfield_10014": null,
    "customfield_10015": null,
    "timetracking": {},
    "security": null,
    "customfield_10008": null,
    "aggregatetimeestimate": null,
    "customfield_10009": null,
    "attachment": [
    ],
    "summary": "As a scrum master, I can see the progress of a sprint via the Burndown Chart >> Click \"Reports\" to view the Burndown Chart",
    "creator": {
      "self": "https://chilkat.atlassian.net/rest/api/2/user?username=admin",
      "name": "admin",
      "key": "admin",
      "accountId": "557058:be8b47b5-3bc0-43f6-b6b2-2cca0de12204",
      "emailAddress": "admin@@chilkatsoft.com",
      "avatarUrls": {
        "48x48": "https://avatar-cdn.atlassian.com/16d54dcc6d4bef86fd7ee62a7cf6334a?s=48&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2F16d54dcc6d4bef86fd7ee62a7cf6334a%3Fd%3Dmm%26s%3D48%26noRedirect%3Dtrue",
        "24x24": "https://avatar-cdn.atlassian.com/16d54dcc6d4bef86fd7ee62a7cf6334a?s=24&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2F16d54dcc6d4bef86fd7ee62a7cf6334a%3Fd%3Dmm%26s%3D24%26noRedirect%3Dtrue",
        "16x16": "https://avatar-cdn.atlassian.com/16d54dcc6d4bef86fd7ee62a7cf6334a?s=16&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2F16d54dcc6d4bef86fd7ee62a7cf6334a%3Fd%3Dmm%26s%3D16%26noRedirect%3Dtrue",
        "32x32": "https://avatar-cdn.atlassian.com/16d54dcc6d4bef86fd7ee62a7cf6334a?s=32&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2F16d54dcc6d4bef86fd7ee62a7cf6334a%3Fd%3Dmm%26s%3D32%26noRedirect%3Dtrue"
      },
      "displayName": "Chilkat Admin",
      "active": true,
      "timeZone": "America/Chicago"
    },
    "subtasks": [
    ],
    "reporter": {
      "self": "https://chilkat.atlassian.net/rest/api/2/user?username=admin",
      "name": "admin",
      "key": "admin",
      "accountId": "557058:be8b47b5-3bc0-43f6-b6b2-2cca0de12204",
      "emailAddress": "admin@@chilkatsoft.com",
      "avatarUrls": {
        "48x48": "https://avatar-cdn.atlassian.com/16d54dcc6d4bef86fd7ee62a7cf6334a?s=48&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2F16d54dcc6d4bef86fd7ee62a7cf6334a%3Fd%3Dmm%26s%3D48%26noRedirect%3Dtrue",
        "24x24": "https://avatar-cdn.atlassian.com/16d54dcc6d4bef86fd7ee62a7cf6334a?s=24&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2F16d54dcc6d4bef86fd7ee62a7cf6334a%3Fd%3Dmm%26s%3D24%26noRedirect%3Dtrue",
        "16x16": "https://avatar-cdn.atlassian.com/16d54dcc6d4bef86fd7ee62a7cf6334a?s=16&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2F16d54dcc6d4bef86fd7ee62a7cf6334a%3Fd%3Dmm%26s%3D16%26noRedirect%3Dtrue",
        "32x32": "https://avatar-cdn.atlassian.com/16d54dcc6d4bef86fd7ee62a7cf6334a?s=32&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2F16d54dcc6d4bef86fd7ee62a7cf6334a%3Fd%3Dmm%26s%3D32%26noRedirect%3Dtrue"
      },
      "displayName": "Chilkat Admin",
      "active": true,
      "timeZone": "America/Chicago"
    },
    "customfield_10000": "{}",
    "aggregateprogress": {
      "progress": 0,
      "total": 0
    },
    "customfield_10001": null,
    "customfield_10002": null,
    "customfield_10003": "",
    "customfield_10004": null,
    "environment": null,
    "duedate": null,
    "progress": {
      "progress": 0,
      "total": 0
    },
    "votes": {
      "self": "https://chilkat.atlassian.net/rest/api/2/issue/SCRUM-15/votes",
      "votes": 0,
      "hasVoted": false
    },
    "comment": {
      "comments": [
        {
          "self": "https://chilkat.atlassian.net/rest/api/2/issue/10014/comment/10006",
          "id": "10006",
          "author": {
            "self": "https://chilkat.atlassian.net/rest/api/2/user?username=admin",
            "name": "admin",
            "key": "admin",
            "accountId": "557058:be8b47b5-3bc0-43f6-b6b2-2cca0de12204",
            "emailAddress": "admin@@chilkatsoft.com",
            "avatarUrls": {
              "48x48": "https://avatar-cdn.atlassian.com/16d54dcc6d4bef86fd7ee62a7cf6334a?s=48&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2F16d54dcc6d4bef86fd7ee62a7cf6334a%3Fd%3Dmm%26s%3D48%26noRedirect%3Dtrue",
              "24x24": "https://avatar-cdn.atlassian.com/16d54dcc6d4bef86fd7ee62a7cf6334a?s=24&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2F16d54dcc6d4bef86fd7ee62a7cf6334a%3Fd%3Dmm%26s%3D24%26noRedirect%3Dtrue",
              "16x16": "https://avatar-cdn.atlassian.com/16d54dcc6d4bef86fd7ee62a7cf6334a?s=16&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2F16d54dcc6d4bef86fd7ee62a7cf6334a%3Fd%3Dmm%26s%3D16%26noRedirect%3Dtrue",
              "32x32": "https://avatar-cdn.atlassian.com/16d54dcc6d4bef86fd7ee62a7cf6334a?s=32&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2F16d54dcc6d4bef86fd7ee62a7cf6334a%3Fd%3Dmm%26s%3D32%26noRedirect%3Dtrue"
            },
            "displayName": "Chilkat Admin",
            "active": true,
            "timeZone": "America/Chicago"
          },
          "body": "Joined Sample Sprint 2 7 days 9 hours 10 minutes ago",
          "updateAuthor": {
            "self": "https://chilkat.atlassian.net/rest/api/2/user?username=admin",
            "name": "admin",
            "key": "admin",
            "accountId": "557058:be8b47b5-3bc0-43f6-b6b2-2cca0de12204",
            "emailAddress": "admin@@chilkatsoft.com",
            "avatarUrls": {
              "48x48": "https://avatar-cdn.atlassian.com/16d54dcc6d4bef86fd7ee62a7cf6334a?s=48&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2F16d54dcc6d4bef86fd7ee62a7cf6334a%3Fd%3Dmm%26s%3D48%26noRedirect%3Dtrue",
              "24x24": "https://avatar-cdn.atlassian.com/16d54dcc6d4bef86fd7ee62a7cf6334a?s=24&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2F16d54dcc6d4bef86fd7ee62a7cf6334a%3Fd%3Dmm%26s%3D24%26noRedirect%3Dtrue",
              "16x16": "https://avatar-cdn.atlassian.com/16d54dcc6d4bef86fd7ee62a7cf6334a?s=16&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2F16d54dcc6d4bef86fd7ee62a7cf6334a%3Fd%3Dmm%26s%3D16%26noRedirect%3Dtrue",
              "32x32": "https://avatar-cdn.atlassian.com/16d54dcc6d4bef86fd7ee62a7cf6334a?s=32&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2F16d54dcc6d4bef86fd7ee62a7cf6334a%3Fd%3Dmm%26s%3D32%26noRedirect%3Dtrue"
            },
            "displayName": "Chilkat Admin",
            "active": true,
            "timeZone": "America/Chicago"
          },
          "created": "2018-04-08T00:33:55.852-0500",
          "updated": "2018-04-08T00:33:55.852-0500"
        },
        {
          "self": "https://chilkat.atlassian.net/rest/api/2/issue/10014/comment/10007",
          "id": "10007",
          "author": {
            "self": "https://chilkat.atlassian.net/rest/api/2/user?username=admin",
            "name": "admin",
            "key": "admin",
            "accountId": "557058:be8b47b5-3bc0-43f6-b6b2-2cca0de12204",
            "emailAddress": "admin@@chilkatsoft.com",
            "avatarUrls": {
              "48x48": "https://avatar-cdn.atlassian.com/16d54dcc6d4bef86fd7ee62a7cf6334a?s=48&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2F16d54dcc6d4bef86fd7ee62a7cf6334a%3Fd%3Dmm%26s%3D48%26noRedirect%3Dtrue",
              "24x24": "https://avatar-cdn.atlassian.com/16d54dcc6d4bef86fd7ee62a7cf6334a?s=24&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2F16d54dcc6d4bef86fd7ee62a7cf6334a%3Fd%3Dmm%26s%3D24%26noRedirect%3Dtrue",
              "16x16": "https://avatar-cdn.atlassian.com/16d54dcc6d4bef86fd7ee62a7cf6334a?s=16&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2F16d54dcc6d4bef86fd7ee62a7cf6334a%3Fd%3Dmm%26s%3D16%26noRedirect%3Dtrue",
              "32x32": "https://avatar-cdn.atlassian.com/16d54dcc6d4bef86fd7ee62a7cf6334a?s=32&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2F16d54dcc6d4bef86fd7ee62a7cf6334a%3Fd%3Dmm%26s%3D32%26noRedirect%3Dtrue"
            },
            "displayName": "Chilkat Admin",
            "active": true,
            "timeZone": "America/Chicago"
          },
          "body": "To Do to In Progress 5 days 4 hours 26 minutes ago\r\nIn Progress to Done 2 days 18 hours 34 minutes ago",
          "updateAuthor": {
            "self": "https://chilkat.atlassian.net/rest/api/2/user?username=admin",
            "name": "admin",
            "key": "admin",
            "accountId": "557058:be8b47b5-3bc0-43f6-b6b2-2cca0de12204",
            "emailAddress": "admin@@chilkatsoft.com",
            "avatarUrls": {
              "48x48": "https://avatar-cdn.atlassian.com/16d54dcc6d4bef86fd7ee62a7cf6334a?s=48&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2F16d54dcc6d4bef86fd7ee62a7cf6334a%3Fd%3Dmm%26s%3D48%26noRedirect%3Dtrue",
              "24x24": "https://avatar-cdn.atlassian.com/16d54dcc6d4bef86fd7ee62a7cf6334a?s=24&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2F16d54dcc6d4bef86fd7ee62a7cf6334a%3Fd%3Dmm%26s%3D24%26noRedirect%3Dtrue",
              "16x16": "https://avatar-cdn.atlassian.com/16d54dcc6d4bef86fd7ee62a7cf6334a?s=16&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2F16d54dcc6d4bef86fd7ee62a7cf6334a%3Fd%3Dmm%26s%3D16%26noRedirect%3Dtrue",
              "32x32": "https://avatar-cdn.atlassian.com/16d54dcc6d4bef86fd7ee62a7cf6334a?s=32&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2F16d54dcc6d4bef86fd7ee62a7cf6334a%3Fd%3Dmm%26s%3D32%26noRedirect%3Dtrue"
            },
            "displayName": "Chilkat Admin",
            "active": true,
            "timeZone": "America/Chicago"
          },
          "created": "2018-04-08T00:33:55.852-0500",
          "updated": "2018-04-08T00:33:55.852-0500"
        }
      ],
      "maxResults": 2,
      "total": 2,
      "startAt": 0
    },
    "worklog": {
      "startAt": 0,
      "maxResults": 20,
      "total": 0,
      "worklogs": [
      ]
    }
  }
}