【发布时间】:2020-03-03 02:56:57
【问题描述】:
朋友们! 开始使用powershell,遇到了问题。 我需要在循环中以 JSON 格式字符串输出一些变量的值。 为此,我使用以下代码:
.....
foreach ($value in $memoryLast5min)
{
$valueInt = [convert]::ToInt32($value, 10);
if ($valueInt -ge $500MB)
{
$index = [array]::IndexOf($memoryLast5min, $value);
$JSON += @{'problemUsers' = @(
@{
"userName" = $userNames[$index]
"memoryLast5min" = $value
"readLast5min" = $readLast5min[$index]
"writeLast5min" = $writeLast5min[$index]
}
)
} | ConvertTo-JSON;
}
}
.....
return $JSON
在变量 $JSON 中我得到以下结果:
{
"problemUsers": [
{
"userName": "User1",
"writeLast5min": 29,
"memoryLast5min": 181,
"readLast5min": 25
}
]
}{
"problemUsers": [
{
"userName": "User2",
"writeLast5min": 80,
"memoryLast5min": 396,
"readLast5min": 74
}
]
}{
"problemUsers": [
{
"userName": "User3",
"writeLast5min": 32,
"memoryLast5min": 169,
"readLast5min": 29
}
]
}
但我需要这个结果:
{
"problemUsers": [
{
"userName": "User1",
"writeLast5min": 29,
"memoryLast5min": 181,
"readLast5min": 25
},
{
"userName": "User2",
"writeLast5min": 80,
"memoryLast5min": 396,
"readLast5min": 74
},
{
"userName": "User3",
"writeLast5min": 32,
"memoryLast5min": 169,
"readLast5min": 29
}
]
}
请帮我修改代码
【问题讨论】:
-
我会尝试从您的
$json语句中删除@{'problemUsers' =并从您的循环中删除 json 转换。然后在循环之外做@{'problemUsers' = $json} | convertto-Json -
@nzrytmn,我的 JSON 文件应该与我的问题的第三个代码块中的相同
-
@AdminOfThings 谢谢!有用!在循环之外做
$JSON = @{'problemUsers' = $JSON} | convertto-Json
标签: json powershell foreach