如何使用 PowerShell 将 JSON 对象转换为哈希表格式?


PowerShell 7 支持 ConvertFrom−JSON 命令中的 -AsHashtable 参数,可直接将 JSON 转换为哈希表,这是一个非常好的功能。假设我们有以下 JSON 文件,

我们可以使用管道命令 ConvertFrom−JSON 将 JSON 文件转换为自定义表格格式,并使用 −AsHashtable 参数将自定义对象转换为哈希表。

PS C:\Temp> Get-Content .\testsevent.json | ConvertFrom-Json -AsHashtable
Name Value
---- -----
Events {602d9444−d2cd−49c7−8624−8643e7171297}
DocumentIncarnation 0

要检索数据,

PS C:\Temp> $out = Get−Content .\testsevent.json | ConvertFrom−Json −AsHashtable
PS C:\Temp> $out.Events

输出

PS C:\Temp> $out.Events
Name Value
---- -----
Description Host server is undergoing maintenance.
EventStatus Scheduled
EventId 602d9444−d2cd−49c7−8624−8643e7171297

对于 PowerShell 框架版本,不支持 -AsHashTable 参数,在这种情况下,您需要按如下所示手动将其转换为哈希表。

$out = Get−Content .\testsevent.json | ConvertFrom−Json

将 JSON 转换为哈希表的代码,

$hash = @{}
$out.psobject.properties | foreach{$hash[$_.Name]= $_.Value}
$hash

输出

更新时间:2021 年 1 月 25 日

6K+ 次浏览

开启你的职业生涯

完成课程认证

开始
广告