I need to parse JSON object from Jira Cloud and I can’t find a way to.
I’m getting it via:
const fetchStatusForIssue = async (issueIdOrKey) => {
const response = await api.asUser().requestJira(route`/rest/api/3/issue/${issueIdOrKey}/changelog`, {
headers: {
'Accept': 'application/json',
}
});
return await response.json();
};
And parsing it here
const App = () => {
const context = useProductContext();
const status = useState(async () => await fetchStatusForIssue(context.platformContext.issueKey));
const a1 = JSON.stringify(status, null, 2)
let a2 = JSON.parse(a1)
console.log(`1: ${a1}`); //returns full JSON
console.log(`2: ${a2.values}`) // returns function values() { [native code] }
};
JSON looks like this:
[
{
"self": "https://api.atlassian.com/ex/jira/17501e86-091b-4743-b36c-1a6892e44de9/rest/api/3/issue/ADRB-3/changelog?maxResults=100&startAt=0",
"maxResults": 100,
"startAt": 0,
"total": 3,
"isLast": true,
"values": [
{
"id": "823890",
"author": {
"self": "https://api.atlassian.com/ex/jira/17501e86-091b-4743-b36c-1a6892e44de9/rest/api/3/user?accountId=id",
"accountId": "id",
"emailAddress": "email",
"avatarUrls": {
"48x48": "https://secure.gravatar.com/avatar/f92c81566848f19c1f81ef5815e75a41?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FVK-4.png",
"24x24": "https://secure.gravatar.com/avatar/f92c81566848f19c1f81ef5815e75a41?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FVK-4.png",
"16x16": "https://secure.gravatar.com/avatar/f92c81566848f19c1f81ef5815e75a41?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FVK-4.png",
"32x32": "https://secure.gravatar.com/avatar/f92c81566848f19c1f81ef5815e75a41?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FVK-4.png"
},
"displayName": "Victor ",
"active": true,
"timeZone": "America/Guatemala",
"accountType": "atlassian"
},
"created": "2023-09-27T11:27:24.597-0600",
"items": [
{
"field": "status",
"fieldtype": "jira",
"fieldId": "status",
"from": "10006",
"fromString": "Backlog",
"to": "3",
"toString": "In Progress"
}
]
},
{
"id": "823891",
"author": {
"self": "https://api.atlassian.com/ex/jira/17501e86-091b-4743-b36c-1a6892e44de9/rest/api/3/user?accountId=626047181046bb0071de5ef8",
"accountId": "id",
"emailAddress": "email",
"avatarUrls": {
"48x48": "https://secure.gravatar.com/avatar/f92c81566848f19c1f81ef5815e75a41?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FVK-4.png",
"24x24": "https://secure.gravatar.com/avatar/f92c81566848f19c1f81ef5815e75a41?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FVK-4.png",
"16x16": "https://secure.gravatar.com/avatar/f92c81566848f19c1f81ef5815e75a41?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FVK-4.png",
"32x32": "https://secure.gravatar.com/avatar/f92c81566848f19c1f81ef5815e75a41?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FVK-4.png"
},
"displayName": "Victor K",
"active": true,
"timeZone": "America/Guatemala",
"accountType": "atlassian"
},
"created": "2023-09-27T12:06:48.077-0600",
"items": [
{
"field": "status",
"fieldtype": "jira",
"fieldId": "status",
"from": "3",
"fromString": "In Progress",
"to": "10052",
"toString": "Waiting On"
}
]
},
{
"id": "823892",
"author": {
"self": "https://api.atlassian.com/ex/jira/17501e86-091b-4743-b36c-1a6892e44de9/rest/api/3/user?accountId=626047181046bb0071de5ef8",
"accountId": "id",
"emailAddress": "email",
"avatarUrls": {
"48x48": "https://secure.gravatar.com/avatar/f92c81566848f19c1f81ef5815e75a41?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FVK-4.png",
"24x24": "https://secure.gravatar.com/avatar/f92c81566848f19c1f81ef5815e75a41?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FVK-4.png",
"16x16": "https://secure.gravatar.com/avatar/f92c81566848f19c1f81ef5815e75a41?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FVK-4.png",
"32x32": "https://secure.gravatar.com/avatar/f92c81566848f19c1f81ef5815e75a41?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FVK-4.png"
},
"displayName": "Victor K",
"active": true,
"timeZone": "America/Guatemala",
"accountType": "atlassian"
},
"created": "2023-09-27T12:58:50.173-0600",
"items": [
{
"field": "status",
"fieldtype": "jira",
"fieldId": "status",
"from": "10052",
"fromString": "Waiting On",
"to": "3",
"toString": "In Progress"
}
]
}
]
},
null
]
By parse I mean a way to get to specific data in JSON object e.g. fromString and toString
I tried many different ways but none worked. Any help is much appreciated