无法在Powershell中将json输出格式化为nested-json

时间:2019-04-15 08:30:26

标签: json powershell pscustomobject

我有这种格式的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 :(得分:0)

可能是您的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