【发布时间】:2019-11-12 18:47:26
【问题描述】:
给出两个 JSON 示例
{
"A": {
"name": "noname",
"key": "nokey"
}
然后
{
"B": {
"property1": "value3",
"country": "australia"
}
}
是否可以创建一个 Powershell 脚本,该脚本可以采用其中一个 JSON 示例并在不知道任何名称/键的情况下循环遍历它们? (使用 Windows 2016)
类似于此处发布的答案How do I loop through or enumerate a JavaScript object?
var p = {
"p1": "value1",
"p2": "value2",
"p3": "value3"
};
for (var key in p) {
if (p.hasOwnProperty(key)) {
console.log(key + " -> " + p[key]);
}
}
不工作
试过这个,但它只适用于第一级
$json = @"
{"A": {"property1": "value1", "property2": "value2"}, "B": {"property1":
"value3", "property2": "value4"}}
"@
$parsed = $json | ConvertFrom-Json
$parsed.PSObject.Properties | ForEach-Object {
$next = $_
$name = $_.Name
$value = $_.value
echo "$name = $value"
$next.PSObject.Properties | ForEach-Object {
$name = $_.Name
$value = $_.value
echo "Second level: $name = $value"
}
}
【问题讨论】:
-
$next.PSObject.Properties需要在您的更新中为$next.Value.PSObject.Properties。您想获取根 property value 的子属性,而不是根 property object...
标签: json powershell