我使用以下代码段从文件中检索了JSON:
$thisJSON = (Get-Content $fullFilePath -Raw) | ConvertFrom-Json
现在json看起来像这样:
{
"Name" : "Fred",
"Age" : 10
}
我希望通过它循环并获取密钥和值。我认为这样可行:
Foreach($key in $myCollection){
$value = $myCollection[$key]
Write-Host "Key : " $key
Write-Host "Value : " $value
}
它似乎只循环一次,当它应该循环两次,因为我得到的输出是:
Key : @{Name=Fred; Age=10}
Value :
因此无法找到该值,并且该键返回整个集合。我在网上搜索过,我一定做错了。
我的想法是我可能需要在从文件中读取后转换为对象或其他东西,但我不确定。
答案 0 :(得分:3)
如果要迭代属性,可以通过访问PsObject
属性来选择所有键(名称):
$thisJSON.PsObject.Properties |
Select-Object -ExpandProperty Name |
ForEach-Object {
Write-Host "Key : " $_
Write-Host "Value : " $thisJSON."$_"
}
<强>输出:强>
Key : Name
Value : Fred
Key : Age
Value : 10