Rok*_*545 5 powershell scripting json
我开始学习 Powershell,目前正在尝试读取 JSON 文件。
这是我的 JSON 文件(名为“versions.json”):
{
"versions": {
"1.0.0": {
"Component1": "1.0.0",
"Component2": "1.0.0",
"Component3": "1.0.0",
},
"2.0.0": {
"Component1": "2.0.0",
"Component2": "2.0.0",
"Component3": "2.0.0"
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想读取这个 JSON 文件并打印出版本及其组成。例如,1.0.0 由 1.0.0 的组件 1、1.0.0 的组件 2 和 1.0.0 的组件 3 组成。
我目前正在使用以下 Powershell 行读取 JSON 文件:
$json = (Get-Content "versions.json" -Raw) | ConvertFrom-Json
Run Code Online (Sandbox Code Playgroud)
现在,我想迭代 $json 并打印出其数据。我目前正在使用这个:
foreach($v in $json.versions) {
echo "Data: $v"
}
Run Code Online (Sandbox Code Playgroud)
但是,当我运行 Powershell 脚本时,它会打印:
Data: @{1.0.0=; 2.0.0=}
Run Code Online (Sandbox Code Playgroud)
这是正确的输出吗?我预计至少会看到 1.0.0 和 2.0.0 的两个条目。这感觉可能是语法问题,但我不确定。我正在使用 Powershell 版本 5。
使用后,ConvertFrom-Json您将拥有一个 PowerShell 对象,该对象是一个具有属性的单个项目versions,该属性具有两个子属性1.0.0和2.0.0。您的 ForEach 尝试像集合一样迭代它们,但它只是一个对象。
但是,您可以按如下方式迭代属性以获得我认为您想要的结果:
($Json.versions.psobject.properties) | foreach-object { "Data: $($_.name)" }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17669 次 |
| 最近记录: |