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.