我有这种格式的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"
}
答案 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