Я пытаюсь создать следующий Json, который будет передан в качестве тела для запроса ReST с помощью команды Invoke-WebRequest cmdLet
{
"fields":{
"summary":"Execution Monday, August 27, 2018 3:24 PM",
"project":{
"id":10401
},
"issuetype":{
"id":10103
},
"customfield_10527":[
"IC-54829",
"IC-54830"
],
"customfield_10539":[
"IC-54831"
]
}
}
Использование следующего powershell
Write-Output 'Creating Test Execution'
$dateString = Get-Date -Format f
$createTestExecutionBody = @{
fields = @{
summary = 'Execution ' + $dateString
project = @{
id = $projectId
}
issuetype = @{
id = $testExecutionIssueTypeId
}
customfield_10527 = ConvertTo-Json -InputObject @($testsArray)
customfield_10539 = ConvertTo-Json -InputObject @($testPlanKey)
}
}
Два свойства настраиваемого поля являются коллекциями. Это то, что я вижу, когда проверяю HTTP для запроса
{
"fields": {
"summary": "Execution Monday, August 27, 2018 3:24 PM",
"customfield_10527": "[\r\n \"IC-54829\",\r\n \"IC-54830\"\r\n]",
"customfield_10539": "[\r\n \"IC-54831\"\r\n]",
"project": {
"id": "10401"
},
"issuetype": {
"id": "10103"
}
}
}
Если я использую флаг -Compress, символы новой строки исчезают, но я все еще получаю коллекцию, завернутую в кавычки, и внутренние кавычки экранируются. Это то, что фактически передается в HTTP как тело с -Compress
{
"fields": {
"summary": "Execution Monday, August 27, 2018 4:50 PM",
"customfield_10527": "[\"IC-54829\",\"IC-54830\"]",
"customfield_10539": "[\"IC-54831\"]",
"project": {
"id": "10401"
},
"issuetype": {
"id": "10103"
}
}
}
Оба пользовательских поля являются коллекциями, которые будут содержать одно или несколько значений и построены на более раннем этапе как массивы. Мне нужна помощь в преобразовании всего этого, особенно пользовательских полей в первый пример json.