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
Другие вопросы по тегам