Вы не показываете никакого кода, поэтому давайте предположим, что ваши данные происходят из CSV-файла
> import-csv .\data.csv
State Type
----- ----
NY auto
NY food
CA retail
CA health
CA auto
TX retail
TX insurance
Группировка по состоянию дает это:
Import-Csv .\data.csv | Group-Object state
Count Name Group
----- ---- -----
2 NY {@{State=NY; Type=auto}, @{State=NY; Type=food}}
3 CA {@{State=CA; Type=retail}, @{State=CA; Type=health}, @{State=CA; Type=auto}}
2 TX {@{State=TX; Type=retail}, @{State=TX; Type=insurance}}
Но вам нужен только один раз состояние и типы из каждой группы,
так что попробуйте развернуть в массив и ConvertTo-Json:
> Import-Csv .\data.csv|Group-Object state|ForEach{@{$_.Name = $_.Group.Type}}|ConvertTo-Json
[
{
"NY": [
"auto",
"food"
]
},
{
"CA": [
"retail",
"health",
"auto"
]
},
{
"TX": [
"retail",
"insurance"
]
}
]
Это выглядит похоже, но не так, как хотелось.
Попробуйте посмотреть, как выглядит объект при конвертации в обратном направлении:
@"
{
"NY": [
"auto",
"food"
],
"CA": [
"retail",
"health",
"auto"
],
"TX": [
"retail",
"insurance"
]
}
"@ | ConvertFrom-Json
NY CA TX
-- -- --
{auto, food} {retail, health, auto} {retail, insurance}
В этот момент я намеревался прервать урок и оставить для вас некоторую кодировку
но colsw хороший ответ избавляет вас от этого.