I need to use Powershell to insert data into a json file within an array. Here is the json original structure
{
"Array": [
{
"servername": "foo"
},
{
"servername": "boo"
}
]
}
Here is the new structure:
{
"Array": [
{
"servername": "Foo",
"Disk": "100"
},
{
"servername": "Boo",
"Disk": "500"
}
]
}
Why does this not work?
$json = @"
{
"Array": [
{
"servername": "Foo"
},
{
"servername": "Boo"
}
]
}
"@
$jsonServerFoo=@"
{
"Disk": "100"
}
"@
$jsonServerBoo=@"
{
"Disk": "500"
}
"@
$jsonObj = $JSON | ConvertFrom-Json
$jsonServerFooObj = $jsonServerFoo | ConvertFrom-Json
$jsonServerBooObj = $jsonServerBoo | ConvertFrom-Json
$i = 1
$jsonObj.Array | Foreach-object {
if ( $i -eq 1 ) {
$_ | Add-Member -MemberType NoteProperty -Name "Disk" -Value $jsonServerFooObj.Disk
$i++
}
else {
$_ | Add-Member -MemberType NoteProperty -Name "Disk" -Value $jsonServerBooObj.Disk
}
}
$jsonObj
$jsonObj | ConvertTo-Json -Depth 100
I get the desired output
{
"Array": [
{
"servername": "Foo",
"Disk": "100"
},
{
"servername": "Boo",
"Disk": "500"
}
]
}