Дубликаты ключей PowerShell JSON, сжатие значений в один массив - PullRequest
0 голосов
/ 30 ноября 2018

Существует ли лучший способ обработки документов JSON с дублированными ключами в PowerShell?

В идеале хотелось бы скомпилировать значения указанных ключей в один массив, сопоставленный с ключом.

Дляпример:

{
"column01" : "id1",
"column02" : "id2",
"column03: : "id3",
"column03" : "id4"
}

Преобразовано в:

{
"column01" : "id1",
"column02" : "id2",
"column03: : [
             "id3",
             "id4"
             ]
}

Я изучал параметры с помощью командлета ConvertTo-Json, но не нашел решения.

Оценитепомощь!

1 Ответ

0 голосов
/ 30 ноября 2018

Хотя JSON допускает дублирование ключей , это не рекомендуется, и я предлагаю обработать это путем нормализации JSON.В противном случае вы можете передать JSON с дублирующим ключом на ConvertFrom-Json, но это не приведет к желаемому результату.

Это должно быть ...

$obj =     @"
{ "column01" : "id1",
  "column02" : "id2",
  "column03" : ["id3", "id4"]

}
"@

Затем с помощью $json = $obj | ConvertFrom-Json для преобразования в объект PowerShell.

Затем вы можете сделать то же самое с объектом PowerShell и преобразовать в JSON.

$obj =     @{ 
  "column01" = "id1";
  "column02" = "id2";
  "column03" = ("id3", "id4")

}    

$json = $obj | ConvertTo-Json

$json

Если вы хотите знать, как нормализовать данные,Я предлагаю вам либо отредактировать свой вопрос, либо задать новый.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...