Unicode C++ 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'

Unicode C++ Example

#include <CkRestW.h>
#include <CkStringBuilderW.h>
#include <CkJsonObjectW.h>

void ChilkatSample(void)
    {
    CkRestW rest;
    bool success;

    //  URL: https://your-domain.atlassian.net/rest/api/2/issue/SCRUM-15
    bool bTls = true;
    int port = 443;
    bool bAutoReconnect = true;
    success = rest.Connect(L"your-domain.atlassian.net",port,bTls,bAutoReconnect);
    if (success != true) {
        wprintf(L"ConnectFailReason: %d\n",rest.get_ConnectFailReason());
        wprintf(L"%s\n",rest.lastErrorText());
        return;
    }

    rest.SetAuthBasic(L"jira@example.com",L"JIRA_API_TOKEN");

    rest.AddHeader(L"Accept",L"application/json");

    CkStringBuilderW sbResponseBody;
    success = rest.FullRequestNoBodySb(L"GET",L"/rest/api/2/issue/SCRUM-15",sbResponseBody);
    if (success != true) {
        wprintf(L"%s\n",rest.lastErrorText());
        return;
    }

    int respStatusCode = rest.get_ResponseStatusCode();
    if (respStatusCode >= 400) {
        wprintf(L"Response Status Code = %d\n",respStatusCode);
        wprintf(L"Response Header:\n");
        wprintf(L"%s\n",rest.responseHeader());
        wprintf(L"Response Body:\n");
        wprintf(L"%s\n",sbResponseBody.getAsString());
        return;
    }

    CkJsonObjectW jsonResponse;
    jsonResponse.LoadSb(sbResponseBody);

    const wchar_t *expand = 0;
    const wchar_t *id = 0;
    const wchar_t *self = 0;
    const wchar_t *key = 0;
    const wchar_t *fieldsIssuetypeSelf = 0;
    const wchar_t *fieldsIssuetypeId = 0;
    const wchar_t *fieldsIssuetypeDescription = 0;
    const wchar_t *fieldsIssuetypeIconUrl = 0;
    const wchar_t *fieldsIssuetypeName = 0;
    bool fieldsIssuetypeSubtask;
    bool fieldsTimespent;
    const wchar_t *fieldsProjectSelf = 0;
    const wchar_t *fieldsProjectId = 0;
    const wchar_t *fieldsProjectKey = 0;
    const wchar_t *fieldsProjectName = 0;
    const wchar_t *fieldsProjectProjectTypeKey = 0;
    const wchar_t *fieldsProjectAvatarUrls48x48 = 0;
    const wchar_t *fieldsProjectAvatarUrls24x24 = 0;
    const wchar_t *fieldsProjectAvatarUrls16x16 = 0;
    const wchar_t *fieldsProjectAvatarUrls32x32 = 0;
    const wchar_t *fieldsProjectProjectCategorySelf = 0;
    const wchar_t *fieldsProjectProjectCategoryId = 0;
    const wchar_t *fieldsProjectProjectCategoryDescription = 0;
    const wchar_t *fieldsProjectProjectCategoryName = 0;
    bool fieldsAggregatetimespent;
    const wchar_t *fieldsResolutionSelf = 0;
    const wchar_t *fieldsResolutionId = 0;
    const wchar_t *fieldsResolutionDescription = 0;
    const wchar_t *fieldsResolutionName = 0;
    const wchar_t *fieldsCustomfield_10027 = 0;
    const wchar_t *fieldsCustomfield_10028 = 0;
    const wchar_t *fieldsCustomfield_10029 = 0;
    const wchar_t *fieldsResolutiondate = 0;
    int fieldsWorkratio;
    const wchar_t *fieldsWatchesSelf = 0;
    int fieldsWatchesWatchCount;
    bool fieldsWatchesIsWatching;
    const wchar_t *fieldsLastViewed = 0;
    const wchar_t *fieldsCreated = 0;
    bool fieldsCustomfield_10022;
    const wchar_t *fieldsCustomfield_10023 = 0;
    const wchar_t *fieldsPrioritySelf = 0;
    const wchar_t *fieldsPriorityIconUrl = 0;
    const wchar_t *fieldsPriorityName = 0;
    const wchar_t *fieldsPriorityId = 0;
    const wchar_t *fieldsCustomfield_10024 = 0;
    const wchar_t *fieldsCustomfield_10025 = 0;
    const wchar_t *fieldsCustomfield_10026 = 0;
    bool fieldsCustomfield_10017;
    bool fieldsCustomfield_10018;
    int fieldsCustomfield_10019;
    bool fieldsAggregatetimeoriginalestimate;
    bool fieldsTimeestimate;
    const wchar_t *fieldsAssigneeSelf = 0;
    const wchar_t *fieldsAssigneeName = 0;
    const wchar_t *fieldsAssigneeKey = 0;
    const wchar_t *fieldsAssigneeAccountId = 0;
    const wchar_t *fieldsAssigneeEmailAddress = 0;
    const wchar_t *fieldsAssigneeAvatarUrls48x48 = 0;
    const wchar_t *fieldsAssigneeAvatarUrls24x24 = 0;
    const wchar_t *fieldsAssigneeAvatarUrls16x16 = 0;
    const wchar_t *fieldsAssigneeAvatarUrls32x32 = 0;
    const wchar_t *fieldsAssigneeDisplayName = 0;
    bool fieldsAssigneeActive;
    const wchar_t *fieldsAssigneeTimeZone = 0;
    const wchar_t *fieldsUpdated = 0;
    const wchar_t *fieldsStatusSelf = 0;
    const wchar_t *fieldsStatusDescription = 0;
    const wchar_t *fieldsStatusIconUrl = 0;
    const wchar_t *fieldsStatusName = 0;
    const wchar_t *fieldsStatusId = 0;
    const wchar_t *fieldsStatusStatusCategorySelf = 0;
    int fieldsStatusStatusCategoryId;
    const wchar_t *fieldsStatusStatusCategoryKey = 0;
    const wchar_t *fieldsStatusStatusCategoryColorName = 0;
    const wchar_t *fieldsStatusStatusCategoryName = 0;
    bool fieldsTimeoriginalestimate;
    bool fieldsDescription;
    const wchar_t *fieldsCustomfield_10011 = 0;
    bool fieldsCustomfield_10012;
    const wchar_t *fieldsCustomfield_10013 = 0;
    bool fieldsCustomfield_10014;
    bool fieldsCustomfield_10015;
    bool fieldsSecurity;
    bool fieldsCustomfield_10008;
    bool fieldsAggregatetimeestimate;
    bool fieldsCustomfield_10009;
    const wchar_t *fieldsSummary = 0;
    const wchar_t *fieldsCreatorSelf = 0;
    const wchar_t *fieldsCreatorName = 0;
    const wchar_t *fieldsCreatorKey = 0;
    const wchar_t *fieldsCreatorAccountId = 0;
    const wchar_t *fieldsCreatorEmailAddress = 0;
    const wchar_t *fieldsCreatorAvatarUrls48x48 = 0;
    const wchar_t *fieldsCreatorAvatarUrls24x24 = 0;
    const wchar_t *fieldsCreatorAvatarUrls16x16 = 0;
    const wchar_t *fieldsCreatorAvatarUrls32x32 = 0;
    const wchar_t *fieldsCreatorDisplayName = 0;
    bool fieldsCreatorActive;
    const wchar_t *fieldsCreatorTimeZone = 0;
    const wchar_t *fieldsReporterSelf = 0;
    const wchar_t *fieldsReporterName = 0;
    const wchar_t *fieldsReporterKey = 0;
    const wchar_t *fieldsReporterAccountId = 0;
    const wchar_t *fieldsReporterEmailAddress = 0;
    const wchar_t *fieldsReporterAvatarUrls48x48 = 0;
    const wchar_t *fieldsReporterAvatarUrls24x24 = 0;
    const wchar_t *fieldsReporterAvatarUrls16x16 = 0;
    const wchar_t *fieldsReporterAvatarUrls32x32 = 0;
    const wchar_t *fieldsReporterDisplayName = 0;
    bool fieldsReporterActive;
    const wchar_t *fieldsReporterTimeZone = 0;
    const wchar_t *fieldsCustomfield_10000 = 0;
    int fieldsAggregateprogressProgress;
    int fieldsAggregateprogressTotal;
    bool fieldsCustomfield_10001;
    bool fieldsCustomfield_10002;
    const wchar_t *fieldsCustomfield_10003 = 0;
    bool fieldsCustomfield_10004;
    bool fieldsEnvironment;
    bool fieldsDuedate;
    int fieldsProgressProgress;
    int fieldsProgressTotal;
    const wchar_t *fieldsVotesSelf = 0;
    int fieldsVotesVotes;
    bool fieldsVotesHasVoted;
    int fieldsCommentMaxResults;
    int fieldsCommentTotal;
    int fieldsCommentStartAt;
    int fieldsWorklogStartAt;
    int fieldsWorklogMaxResults;
    int fieldsWorklogTotal;
    int i;
    int count_i;
    const wchar_t *strVal = 0;
    const wchar_t *authorSelf = 0;
    const wchar_t *authorName = 0;
    const wchar_t *authorKey = 0;
    const wchar_t *authorAccountId = 0;
    const wchar_t *authorEmailAddress = 0;
    const wchar_t *authorAvatarUrls48x48 = 0;
    const wchar_t *authorAvatarUrls24x24 = 0;
    const wchar_t *authorAvatarUrls16x16 = 0;
    const wchar_t *authorAvatarUrls32x32 = 0;
    const wchar_t *authorDisplayName = 0;
    bool authorActive;
    const wchar_t *authorTimeZone = 0;
    const wchar_t *body = 0;
    const wchar_t *updateAuthorSelf = 0;
    const wchar_t *updateAuthorName = 0;
    const wchar_t *updateAuthorKey = 0;
    const wchar_t *updateAuthorAccountId = 0;
    const wchar_t *updateAuthorEmailAddress = 0;
    const wchar_t *updateAuthorAvatarUrls48x48 = 0;
    const wchar_t *updateAuthorAvatarUrls24x24 = 0;
    const wchar_t *updateAuthorAvatarUrls16x16 = 0;
    const wchar_t *updateAuthorAvatarUrls32x32 = 0;
    const wchar_t *updateAuthorDisplayName = 0;
    bool updateAuthorActive;
    const wchar_t *updateAuthorTimeZone = 0;
    const wchar_t *created = 0;
    const wchar_t *updated = 0;

    expand = jsonResponse.stringOf(L"expand");
    id = jsonResponse.stringOf(L"id");
    self = jsonResponse.stringOf(L"self");
    key = jsonResponse.stringOf(L"key");
    fieldsIssuetypeSelf = jsonResponse.stringOf(L"fields.issuetype.self");
    fieldsIssuetypeId = jsonResponse.stringOf(L"fields.issuetype.id");
    fieldsIssuetypeDescription = jsonResponse.stringOf(L"fields.issuetype.description");
    fieldsIssuetypeIconUrl = jsonResponse.stringOf(L"fields.issuetype.iconUrl");
    fieldsIssuetypeName = jsonResponse.stringOf(L"fields.issuetype.name");
    fieldsIssuetypeSubtask = jsonResponse.BoolOf(L"fields.issuetype.subtask");
    fieldsTimespent = jsonResponse.IsNullOf(L"fields.timespent");
    fieldsProjectSelf = jsonResponse.stringOf(L"fields.project.self");
    fieldsProjectId = jsonResponse.stringOf(L"fields.project.id");
    fieldsProjectKey = jsonResponse.stringOf(L"fields.project.key");
    fieldsProjectName = jsonResponse.stringOf(L"fields.project.name");
    fieldsProjectProjectTypeKey = jsonResponse.stringOf(L"fields.project.projectTypeKey");
    fieldsProjectAvatarUrls48x48 = jsonResponse.stringOf(L"fields.project.avatarUrls.48x48");
    fieldsProjectAvatarUrls24x24 = jsonResponse.stringOf(L"fields.project.avatarUrls.24x24");
    fieldsProjectAvatarUrls16x16 = jsonResponse.stringOf(L"fields.project.avatarUrls.16x16");
    fieldsProjectAvatarUrls32x32 = jsonResponse.stringOf(L"fields.project.avatarUrls.32x32");
    fieldsProjectProjectCategorySelf = jsonResponse.stringOf(L"fields.project.projectCategory.self");
    fieldsProjectProjectCategoryId = jsonResponse.stringOf(L"fields.project.projectCategory.id");
    fieldsProjectProjectCategoryDescription = jsonResponse.stringOf(L"fields.project.projectCategory.description");
    fieldsProjectProjectCategoryName = jsonResponse.stringOf(L"fields.project.projectCategory.name");
    fieldsAggregatetimespent = jsonResponse.IsNullOf(L"fields.aggregatetimespent");
    fieldsResolutionSelf = jsonResponse.stringOf(L"fields.resolution.self");
    fieldsResolutionId = jsonResponse.stringOf(L"fields.resolution.id");
    fieldsResolutionDescription = jsonResponse.stringOf(L"fields.resolution.description");
    fieldsResolutionName = jsonResponse.stringOf(L"fields.resolution.name");
    fieldsCustomfield_10027 = jsonResponse.stringOf(L"fields.customfield_10027");
    fieldsCustomfield_10028 = jsonResponse.stringOf(L"fields.customfield_10028");
    fieldsCustomfield_10029 = jsonResponse.stringOf(L"fields.customfield_10029");
    fieldsResolutiondate = jsonResponse.stringOf(L"fields.resolutiondate");
    fieldsWorkratio = jsonResponse.IntOf(L"fields.workratio");
    fieldsWatchesSelf = jsonResponse.stringOf(L"fields.watches.self");
    fieldsWatchesWatchCount = jsonResponse.IntOf(L"fields.watches.watchCount");
    fieldsWatchesIsWatching = jsonResponse.BoolOf(L"fields.watches.isWatching");
    fieldsLastViewed = jsonResponse.stringOf(L"fields.lastViewed");
    fieldsCreated = jsonResponse.stringOf(L"fields.created");
    fieldsCustomfield_10022 = jsonResponse.IsNullOf(L"fields.customfield_10022");
    fieldsCustomfield_10023 = jsonResponse.stringOf(L"fields.customfield_10023");
    fieldsPrioritySelf = jsonResponse.stringOf(L"fields.priority.self");
    fieldsPriorityIconUrl = jsonResponse.stringOf(L"fields.priority.iconUrl");
    fieldsPriorityName = jsonResponse.stringOf(L"fields.priority.name");
    fieldsPriorityId = jsonResponse.stringOf(L"fields.priority.id");
    fieldsCustomfield_10024 = jsonResponse.stringOf(L"fields.customfield_10024");
    fieldsCustomfield_10025 = jsonResponse.stringOf(L"fields.customfield_10025");
    fieldsCustomfield_10026 = jsonResponse.stringOf(L"fields.customfield_10026");
    fieldsCustomfield_10017 = jsonResponse.IsNullOf(L"fields.customfield_10017");
    fieldsCustomfield_10018 = jsonResponse.IsNullOf(L"fields.customfield_10018");
    fieldsCustomfield_10019 = jsonResponse.IntOf(L"fields.customfield_10019");
    fieldsAggregatetimeoriginalestimate = jsonResponse.IsNullOf(L"fields.aggregatetimeoriginalestimate");
    fieldsTimeestimate = jsonResponse.IsNullOf(L"fields.timeestimate");
    fieldsAssigneeSelf = jsonResponse.stringOf(L"fields.assignee.self");
    fieldsAssigneeName = jsonResponse.stringOf(L"fields.assignee.name");
    fieldsAssigneeKey = jsonResponse.stringOf(L"fields.assignee.key");
    fieldsAssigneeAccountId = jsonResponse.stringOf(L"fields.assignee.accountId");
    fieldsAssigneeEmailAddress = jsonResponse.stringOf(L"fields.assignee.emailAddress");
    fieldsAssigneeAvatarUrls48x48 = jsonResponse.stringOf(L"fields.assignee.avatarUrls.48x48");
    fieldsAssigneeAvatarUrls24x24 = jsonResponse.stringOf(L"fields.assignee.avatarUrls.24x24");
    fieldsAssigneeAvatarUrls16x16 = jsonResponse.stringOf(L"fields.assignee.avatarUrls.16x16");
    fieldsAssigneeAvatarUrls32x32 = jsonResponse.stringOf(L"fields.assignee.avatarUrls.32x32");
    fieldsAssigneeDisplayName = jsonResponse.stringOf(L"fields.assignee.displayName");
    fieldsAssigneeActive = jsonResponse.BoolOf(L"fields.assignee.active");
    fieldsAssigneeTimeZone = jsonResponse.stringOf(L"fields.assignee.timeZone");
    fieldsUpdated = jsonResponse.stringOf(L"fields.updated");
    fieldsStatusSelf = jsonResponse.stringOf(L"fields.status.self");
    fieldsStatusDescription = jsonResponse.stringOf(L"fields.status.description");
    fieldsStatusIconUrl = jsonResponse.stringOf(L"fields.status.iconUrl");
    fieldsStatusName = jsonResponse.stringOf(L"fields.status.name");
    fieldsStatusId = jsonResponse.stringOf(L"fields.status.id");
    fieldsStatusStatusCategorySelf = jsonResponse.stringOf(L"fields.status.statusCategory.self");
    fieldsStatusStatusCategoryId = jsonResponse.IntOf(L"fields.status.statusCategory.id");
    fieldsStatusStatusCategoryKey = jsonResponse.stringOf(L"fields.status.statusCategory.key");
    fieldsStatusStatusCategoryColorName = jsonResponse.stringOf(L"fields.status.statusCategory.colorName");
    fieldsStatusStatusCategoryName = jsonResponse.stringOf(L"fields.status.statusCategory.name");
    fieldsTimeoriginalestimate = jsonResponse.IsNullOf(L"fields.timeoriginalestimate");
    fieldsDescription = jsonResponse.IsNullOf(L"fields.description");
    fieldsCustomfield_10011 = jsonResponse.stringOf(L"fields.customfield_10011");
    fieldsCustomfield_10012 = jsonResponse.IsNullOf(L"fields.customfield_10012");
    fieldsCustomfield_10013 = jsonResponse.stringOf(L"fields.customfield_10013");
    fieldsCustomfield_10014 = jsonResponse.IsNullOf(L"fields.customfield_10014");
    fieldsCustomfield_10015 = jsonResponse.IsNullOf(L"fields.customfield_10015");
    fieldsSecurity = jsonResponse.IsNullOf(L"fields.security");
    fieldsCustomfield_10008 = jsonResponse.IsNullOf(L"fields.customfield_10008");
    fieldsAggregatetimeestimate = jsonResponse.IsNullOf(L"fields.aggregatetimeestimate");
    fieldsCustomfield_10009 = jsonResponse.IsNullOf(L"fields.customfield_10009");
    fieldsSummary = jsonResponse.stringOf(L"fields.summary");
    fieldsCreatorSelf = jsonResponse.stringOf(L"fields.creator.self");
    fieldsCreatorName = jsonResponse.stringOf(L"fields.creator.name");
    fieldsCreatorKey = jsonResponse.stringOf(L"fields.creator.key");
    fieldsCreatorAccountId = jsonResponse.stringOf(L"fields.creator.accountId");
    fieldsCreatorEmailAddress = jsonResponse.stringOf(L"fields.creator.emailAddress");
    fieldsCreatorAvatarUrls48x48 = jsonResponse.stringOf(L"fields.creator.avatarUrls.48x48");
    fieldsCreatorAvatarUrls24x24 = jsonResponse.stringOf(L"fields.creator.avatarUrls.24x24");
    fieldsCreatorAvatarUrls16x16 = jsonResponse.stringOf(L"fields.creator.avatarUrls.16x16");
    fieldsCreatorAvatarUrls32x32 = jsonResponse.stringOf(L"fields.creator.avatarUrls.32x32");
    fieldsCreatorDisplayName = jsonResponse.stringOf(L"fields.creator.displayName");
    fieldsCreatorActive = jsonResponse.BoolOf(L"fields.creator.active");
    fieldsCreatorTimeZone = jsonResponse.stringOf(L"fields.creator.timeZone");
    fieldsReporterSelf = jsonResponse.stringOf(L"fields.reporter.self");
    fieldsReporterName = jsonResponse.stringOf(L"fields.reporter.name");
    fieldsReporterKey = jsonResponse.stringOf(L"fields.reporter.key");
    fieldsReporterAccountId = jsonResponse.stringOf(L"fields.reporter.accountId");
    fieldsReporterEmailAddress = jsonResponse.stringOf(L"fields.reporter.emailAddress");
    fieldsReporterAvatarUrls48x48 = jsonResponse.stringOf(L"fields.reporter.avatarUrls.48x48");
    fieldsReporterAvatarUrls24x24 = jsonResponse.stringOf(L"fields.reporter.avatarUrls.24x24");
    fieldsReporterAvatarUrls16x16 = jsonResponse.stringOf(L"fields.reporter.avatarUrls.16x16");
    fieldsReporterAvatarUrls32x32 = jsonResponse.stringOf(L"fields.reporter.avatarUrls.32x32");
    fieldsReporterDisplayName = jsonResponse.stringOf(L"fields.reporter.displayName");
    fieldsReporterActive = jsonResponse.BoolOf(L"fields.reporter.active");
    fieldsReporterTimeZone = jsonResponse.stringOf(L"fields.reporter.timeZone");
    fieldsCustomfield_10000 = jsonResponse.stringOf(L"fields.customfield_10000");
    fieldsAggregateprogressProgress = jsonResponse.IntOf(L"fields.aggregateprogress.progress");
    fieldsAggregateprogressTotal = jsonResponse.IntOf(L"fields.aggregateprogress.total");
    fieldsCustomfield_10001 = jsonResponse.IsNullOf(L"fields.customfield_10001");
    fieldsCustomfield_10002 = jsonResponse.IsNullOf(L"fields.customfield_10002");
    fieldsCustomfield_10003 = jsonResponse.stringOf(L"fields.customfield_10003");
    fieldsCustomfield_10004 = jsonResponse.IsNullOf(L"fields.customfield_10004");
    fieldsEnvironment = jsonResponse.IsNullOf(L"fields.environment");
    fieldsDuedate = jsonResponse.IsNullOf(L"fields.duedate");
    fieldsProgressProgress = jsonResponse.IntOf(L"fields.progress.progress");
    fieldsProgressTotal = jsonResponse.IntOf(L"fields.progress.total");
    fieldsVotesSelf = jsonResponse.stringOf(L"fields.votes.self");
    fieldsVotesVotes = jsonResponse.IntOf(L"fields.votes.votes");
    fieldsVotesHasVoted = jsonResponse.BoolOf(L"fields.votes.hasVoted");
    fieldsCommentMaxResults = jsonResponse.IntOf(L"fields.comment.maxResults");
    fieldsCommentTotal = jsonResponse.IntOf(L"fields.comment.total");
    fieldsCommentStartAt = jsonResponse.IntOf(L"fields.comment.startAt");
    fieldsWorklogStartAt = jsonResponse.IntOf(L"fields.worklog.startAt");
    fieldsWorklogMaxResults = jsonResponse.IntOf(L"fields.worklog.maxResults");
    fieldsWorklogTotal = jsonResponse.IntOf(L"fields.worklog.total");
    i = 0;
    count_i = jsonResponse.SizeOfArray(L"fields.fixVersions");
    while (i < count_i) {
        jsonResponse.put_I(i);
        i = i + 1;
    }

    i = 0;
    count_i = jsonResponse.SizeOfArray(L"fields.labels");
    while (i < count_i) {
        jsonResponse.put_I(i);
        i = i + 1;
    }

    i = 0;
    count_i = jsonResponse.SizeOfArray(L"fields.customfield_10016");
    while (i < count_i) {
        jsonResponse.put_I(i);
        i = i + 1;
    }

    i = 0;
    count_i = jsonResponse.SizeOfArray(L"fields.versions");
    while (i < count_i) {
        jsonResponse.put_I(i);
        i = i + 1;
    }

    i = 0;
    count_i = jsonResponse.SizeOfArray(L"fields.issuelinks");
    while (i < count_i) {
        jsonResponse.put_I(i);
        i = i + 1;
    }

    i = 0;
    count_i = jsonResponse.SizeOfArray(L"fields.components");
    while (i < count_i) {
        jsonResponse.put_I(i);
        i = i + 1;
    }

    i = 0;
    count_i = jsonResponse.SizeOfArray(L"fields.customfield_10010");
    while (i < count_i) {
        jsonResponse.put_I(i);
        strVal = jsonResponse.stringOf(L"fields.customfield_10010[i]");
        i = i + 1;
    }

    i = 0;
    count_i = jsonResponse.SizeOfArray(L"fields.attachment");
    while (i < count_i) {
        jsonResponse.put_I(i);
        i = i + 1;
    }

    i = 0;
    count_i = jsonResponse.SizeOfArray(L"fields.subtasks");
    while (i < count_i) {
        jsonResponse.put_I(i);
        i = i + 1;
    }

    i = 0;
    count_i = jsonResponse.SizeOfArray(L"fields.comment.comments");
    while (i < count_i) {
        jsonResponse.put_I(i);
        self = jsonResponse.stringOf(L"fields.comment.comments[i].self");
        id = jsonResponse.stringOf(L"fields.comment.comments[i].id");
        authorSelf = jsonResponse.stringOf(L"fields.comment.comments[i].author.self");
        authorName = jsonResponse.stringOf(L"fields.comment.comments[i].author.name");
        authorKey = jsonResponse.stringOf(L"fields.comment.comments[i].author.key");
        authorAccountId = jsonResponse.stringOf(L"fields.comment.comments[i].author.accountId");
        authorEmailAddress = jsonResponse.stringOf(L"fields.comment.comments[i].author.emailAddress");
        authorAvatarUrls48x48 = jsonResponse.stringOf(L"fields.comment.comments[i].author.avatarUrls.48x48");
        authorAvatarUrls24x24 = jsonResponse.stringOf(L"fields.comment.comments[i].author.avatarUrls.24x24");
        authorAvatarUrls16x16 = jsonResponse.stringOf(L"fields.comment.comments[i].author.avatarUrls.16x16");
        authorAvatarUrls32x32 = jsonResponse.stringOf(L"fields.comment.comments[i].author.avatarUrls.32x32");
        authorDisplayName = jsonResponse.stringOf(L"fields.comment.comments[i].author.displayName");
        authorActive = jsonResponse.BoolOf(L"fields.comment.comments[i].author.active");
        authorTimeZone = jsonResponse.stringOf(L"fields.comment.comments[i].author.timeZone");
        body = jsonResponse.stringOf(L"fields.comment.comments[i].body");
        updateAuthorSelf = jsonResponse.stringOf(L"fields.comment.comments[i].updateAuthor.self");
        updateAuthorName = jsonResponse.stringOf(L"fields.comment.comments[i].updateAuthor.name");
        updateAuthorKey = jsonResponse.stringOf(L"fields.comment.comments[i].updateAuthor.key");
        updateAuthorAccountId = jsonResponse.stringOf(L"fields.comment.comments[i].updateAuthor.accountId");
        updateAuthorEmailAddress = jsonResponse.stringOf(L"fields.comment.comments[i].updateAuthor.emailAddress");
        updateAuthorAvatarUrls48x48 = jsonResponse.stringOf(L"fields.comment.comments[i].updateAuthor.avatarUrls.48x48");
        updateAuthorAvatarUrls24x24 = jsonResponse.stringOf(L"fields.comment.comments[i].updateAuthor.avatarUrls.24x24");
        updateAuthorAvatarUrls16x16 = jsonResponse.stringOf(L"fields.comment.comments[i].updateAuthor.avatarUrls.16x16");
        updateAuthorAvatarUrls32x32 = jsonResponse.stringOf(L"fields.comment.comments[i].updateAuthor.avatarUrls.32x32");
        updateAuthorDisplayName = jsonResponse.stringOf(L"fields.comment.comments[i].updateAuthor.displayName");
        updateAuthorActive = jsonResponse.BoolOf(L"fields.comment.comments[i].updateAuthor.active");
        updateAuthorTimeZone = jsonResponse.stringOf(L"fields.comment.comments[i].updateAuthor.timeZone");
        created = jsonResponse.stringOf(L"fields.comment.comments[i].created");
        updated = jsonResponse.stringOf(L"fields.comment.comments[i].updated");
        i = i + 1;
    }

    i = 0;
    count_i = jsonResponse.SizeOfArray(L"fields.worklog.worklogs");
    while (i < count_i) {
        jsonResponse.put_I(i);
        i = i + 1;
    }
    }

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": [
      ]
    }
  }
}