如何使用 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
输出
广告