Powershell convertto-json дает плохой формат
Здравствуйте, я пытаюсь использовать convertto-json для создания файла json из другого вывода и сохранения его, но у меня плохой формат json
Вот моя функция
$output.value | ForEach-Object {
"{"+"id"+':'+ $_.id+','+"outcome" +':'+ '"'+$_.results.outcome+'"'+','+"idtc"+':' +$_.testCaseReference.id + "}"
} | ConvertTo-Json| Out-File -FilePath .\tfs.json
Вот результат tfs.json
[
"{id:11431,outcome:\"passed\",idtc:70155}",
"{id:11432,outcome:\"unspecified\",idtc:70156}",
"{id:11433,outcome:\"failed\",idtc:70157}",
"{id:11434,outcome:\"unspecified\",idtc:70158}"
]
Может ли кто-нибудь помочь, почему он появляется именно так, а не
[
{"id":11431,"outcome":"passed","idtc":70155"},
{"id":11432,"outcome":"unspecified","idtc":70156"},
{"id":11433,"outcome":"failed","idtc":70157"},
{"id":11434,"outcome":"unspecified","idtc":70158"}
]
1 ответ
Решение
Вывод, который вы получаете от
ConvertTo-JSON
вполне ожидаемо. Вы передаете строку командлету, поэтому он возвращает строку как JSON.
Попробуйте вместо этого:
$output.value | ForEach-Object {
[pscustomobject]@{
id = $_.id
outcome = $_.results.outcome
idtc = $_.testCaseReference.id
}
} | ConvertTo-Json | Out-File -FilePath .\tfs.json