如何从Powershell脚本中读取JSON数据并迭代它

时间:2017-08-07 20:21:34

标签: json powershell scripting

我开始学习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.

1 个答案:

答案 0 :(得分:1)

使用ConvertFrom-Json后,您有一个PowerShell对象,该对象是具有versions属性的单个项目,该属性具有两个子属性1.0.02.0.0。你的ForEach试图像集合一样迭代它们,但它只是一个对象。

但是,您可以按如下方式迭代属性以获得我认为您想要的结果:

 ($Json.versions.psobject.properties) | foreach-object { "Data: $($_.name)" }