我开始学习Powershell,而我目前正在尝试阅读JSON文件。
这是我的JSON文件(名为' versions.json'):
$json = (Get-Content "versions.json" -Raw) | ConvertFrom-Json
我想阅读这个JSON文件并打印出版本及其组成。例如,1.0.0由组件1(1.0.0),组件2(1.0.0)和组件3(1.0.0)组成。
我目前正在使用此Powershell系列阅读JSON文件:
foreach($v in $json.versions) {
echo "Data: $v"
}
现在,我想迭代$ json并打印出它的数据。我目前正在使用这个:
Data: @{1.0.0=; 2.0.0=}
但是,当我运行我的Powershell脚本时,会打印出来:
{{1}}
这是正确的输出吗?我期待至少看到1.0.0和2.0.0的两个条目。这感觉可能是语法问题,但我不确定。我使用的是Powershell版本5.
答案 0 :(得分:1)
使用ConvertFrom-Json
后,您有一个PowerShell对象,该对象是具有versions
属性的单个项目,该属性具有两个子属性1.0.0
和2.0.0
。你的ForEach试图像集合一样迭代它们,但它只是一个对象。
但是,您可以按如下方式迭代属性以获得我认为您想要的结果:
($Json.versions.psobject.properties) | foreach-object { "Data: $($_.name)" }