PowerShell json重复键,将值压缩为单个数组

时间:2018-11-30 20:20:46

标签: json powershell formatting

在PowerShell中使用重复键处理JSON文档是否有最佳实践?

理想情况下,要将所述键的值编译为映射到键的单个数组。

例如:

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

已转换为:

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

我一直在探索ConvertTo-Json cmdlet的选项,但没有找到解决方案。

感谢帮助!

1 个答案:

答案 0 :(得分:1)

尽管使用JSON does allow duplicate keys,但不建议这样做,我建议通过规范化JSON来处理。否则,您当然可以将带有重复键的JSON传递给ConvertFrom-Json,但这不会导致您想要的输出。

应该是...

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

}
"@

然后使用$json = $obj | ConvertFrom-Json转换为powershell obj。

然后,您可以对PowerShell对象执行相同的操作并将其转换为JSON。

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

}    

$json = $obj | ConvertTo-Json

$json

如果您想知道如何规范化数据,建议您编辑问题或提出一个新问题。