朋友们!开始使用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。
$data = [pscustomobject]@{
problemUsers = @()
}
foreach ($value in $memoryLast5min)
{
$valueInt = [convert]::ToInt32($value, 10);
if ($valueInt -ge $500MB)
{
$index = [array]::IndexOf($memoryLast5min, $value)
$data.problemUsers += @{
userName = $userNames[$index]
memoryLast5min = $value
readLast5min = $readLast5min[$index]
writeLast5min = $writeLast5min[$index]
}
}
}
$json = $data | ConvertTo-Json