我正在努力使用PowerShell脚本向现有的JSON数组添加新元素。这是我的JSON文件结构。
[
{
"Company": [
{
"Finance": [
{
"StaffName": "Name1",
"StaffRating": "Rating1"
}
],
"HR": [
{
"StaffName": "Name1",
"StaffRating": "Rating1"
},
{
"StaffName": "Name2",
"StaffRating": "Rating2"
}
]
}
]
}
]
我试图将以下对象附加到“公司” - >“HR”部分:
{
"StaffName": "Name3",
"StaffRating": "Rating3"
}
我尝试使用'+ ='没有运气。此代码不起作用,因为它从文件中删除内容而不会抛出任何错误:
$FromJSON = Get-Content $JsonfilePath -raw | ConvertFrom-Json
$versionDataFromJSON.Company.HR += [pscustomobject] @{ StaffName= 'Name3'},[pscustomobject] @{ StaffRating= 'Rating3' }
$FromJSON | ConvertTo-Json | Set-Content $JsonfilePath
这是我想要的JSON:
[
{
"Company": [
{
"Finance": [
{
"StaffName": "Name1",
"StaffRating": "Rating1"
}
],
"HR": [
{
"StaffName": "Name1",
"StaffRating": "Rating1"
},
{
"StaffName": "Name2",
"StaffRating": "Rating2"
},
{ "StaffName": "Name3",
"StaffRating": "Rating3"
}
]
}
]
}
]
这样怎么样......
$JsonDataAdd = @"
{
"StaffName": "Name3",
"StaffRating": "Rating3"
}
"@
$JsonData = @"
[
{
"Company": [
{
"Finance": [
{
"StaffName": "Name1",
"StaffRating": "Rating1"
}
],
"HR": [
{
"StaffName": "Name1",
"StaffRating": "Rating1"
},
{
"StaffName": "Name2",
"StaffRating": "Rating2"
}
]
}
]
}
]
"@ | ConvertFrom-JSON
($JsonData + ($JsonData.Company.HR += (ConvertFrom-Json $JsonDataAdd)))
Company
-------
{@{Finance=System.Object[]; HR=System.Object[]}}
$JsonData.Company
Finance HR
------- --
{@{StaffName=Name1; StaffRating=Rating1}} {@{StaffName=Name1; StaffRating=Rating1}, @{StaffName=Name2; StaffRating=Rating2}, @{StaffName=Name3; StaffRat...
$JsonData.Company.Finance
StaffName StaffRating
--------- -----------
Name1 Rating1
$JsonData.Company.HR
StaffName StaffRating
--------- -----------
Name1 Rating1
Name2 Rating2
Name3 Rating3
$JsonData.Company | ConvertTo-Json
{
"Finance": [
{
"StaffName": "Name1",
"StaffRating": "Rating1"
}
],
"HR": [
{
"StaffName": "Name1",
"StaffRating": "Rating1"
},
{
"StaffName": "Name2",
"StaffRating": "Rating2"
},
{
"StaffName": "Name3",
"StaffRating": "Rating3"
}
]
}
$JsonData | ConvertTo-Json -Depth 4
{
"Company": [
{
"Finance": [
{
"StaffName": "Name1",
"StaffRating": "Rating1"
}
],
"HR": [
{
"StaffName": "Name1",
"StaffRating": "Rating1"
},
{
"StaffName": "Name2",
"StaffRating": "Rating2"
},
{
"StaffName": "Name3",
"StaffRating": "Rating3"
}
]
}
]
}