So if we look at one of the out-of-box scripts for ScriptRunner Cloud
post('/rest/api/2/issue')
.header('Content-Type', 'application/json')
.body(
[
fields: [
summary : 'Task Summary',
description: "Don't forget to do this!.",
project : [
key: projectKey
],
issuetype : [
id: taskType
]
]
])
We see that the JSON brackets that would normally be a curly bracket are now a square bracket.
I can't find any standards or documentation around this, so hopefully someone knows:
a) Why a non-standard syntax is used and
b) How to then show arrays in JSON (where a square bracket would be used normally)
//Rough Custom field array representation; how is this done in Groovy?
customfield_12345: [
{
name: "Johnny"
asset: "Subaru"
}
{
name: "Kate"
asset: "Holden"
}
]
Hi Andrew,
The script uses Groovy map and list notation, which gets converted into JSON rather than JSON directly.
Your example would be:
customfield_12345: [ // start array
[ //start object
name : "Johnny",
asset: "Subaru"
],
[
name : "Kate",
asset: "Holden"
]
]Note that map literals are defined as [key: value] pairs and lists use comma separated lists.
It is possible to use JSON directly (although much less convenient) like so:
post('/rest/api/2/issue')
.header('Content-Type', 'application/json')
.body("""
{
"fields": {
"summary" : "Task Summary",
"description": "Don't forget to do this!.",
"project" : {
"key": "${projectKey}"
},
"issuetype" : {
"id": "${taskType}"
}
}
}
""").asString()
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.