Невозможно отформатировать вывод json в nested-json в powershell - PullRequest
0 голосов
/ 15 апреля 2019

У меня есть вывод PowerShell JSON в этом формате.

{
    "Name":  "web-app",
    "BuildingBlock":  "create-web-app",
    "TemplateName":  "qa-bb-create-web-app-V1.1.1",
    "TemplateID":  1809
},
{
    "Name":  "web-app",
    "BuildingBlock":  "destroy-web-app",
    "TemplateName":  "qa-bb-destroy-web-app-V1.1.1",
    "TemplateID":  1810
 }

Что мне нужно сделать, так это получить первое значение ключа, где бы оно ни находилось, взять его в качестве общего параметра и сделать третье значение ключа вложенным ключом, а четвертое значение ключа указать в качестве значения. Что-то вроде этого. Может кто-нибудь предоставить решение в powershell.

{
   "web-app":{
               "create-web-app":"1809",
               "destroy-web-app":"1810"
}

1 Ответ

0 голосов
/ 15 апреля 2019

Может быть, ваш JSON не правильно отформатирован. Вы можете попробовать что-то вроде этого?

$varJSON=@"
{
    "Name":  "web-app",
    "BuildingBlock":  "create-web-app",
    "TemplateName":  "qa-bb-create-web-app-V1.1.1",
    "TemplateID":  1809
},
{
    "Name":  "web-app",
    "BuildingBlock":  "destroy-web-app",
    "TemplateName":  "qa-bb-destroy-web-app-V1.1.1",
    "TemplateID":  1810
 }
"@

$varJSON='{"Root": [' + $varJSON + "]}"

$JSON=$varJSON | ConvertFrom-Json
$JSON.Root | group name | %{

[pscustomobject]@{
$_.Name=$_.Group.BuildingBlock


}

} | ConvertTo-Json
...