【发布时间】:2018-01-15 05:50:18
【问题描述】:
我开始学习 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"
}
}
}
我想读入这个 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
现在,我想遍历 $json 并打印出它的数据。我目前正在使用这个:
foreach($v in $json.versions) {
echo "Data: $v"
}
但是,当我运行我的 Powershell 脚本时,它会打印:
Data: @{1.0.0=; 2.0.0=}
这是正确的输出吗?我预计至少会看到 1.0.0 和 2.0.0 的两个条目。这感觉可能是语法问题,但我不确定。我正在使用 Powershell 版本 5。
【问题讨论】:
-
原始帖子中缺少“$v”。我已经修好了。
-
它不是一个集合,这就是为什么你不能迭代它。如果您执行
$json.versions | get-member,您将看到 1.0.0 和 2.0.0 是单个项目的属性。
标签: json powershell scripting