我想使用PowerShell版本5为我解析的JSON添加一些内容。我的代码:
$file = 'C:\test\data.json'
$json = Get-Content -Raw $file;
$jsonparsed = ConvertFrom-Json -InputObject $json;
$machineName = [System.Environment]::MachineName;
$blockcvalue =@"
{
"id": "$machineName"
}
"@
我的JSON数据: -
{
"path": "C:\\test\\Storage",
"fs": "C:\\test\\fs",
"serverAddresses": [
"http://localhost:5000"
],
"serverCertificate": {
"name": "My",
"location": "location"
}
}
我想将一些数据添加到我的JSON中,如下所示: -
{
"path": "C:\\test\\Storage",
"fs": "C:\\test\\fs",
"serverAddresses": [
"http://localhost:5000"
],
"serverCertificate": {
"name": "My",
"location": "location"
},
"id": "MyComputerName"
}
如何在我的JSON数据中附加“id”:“MyComputerName”?
答案 0 :(得分:1)
使用Convertfrom-JSON
时,您使用JSON文件提供的属性和值构建了PSCustomObject
。从现在开始,您不会修改JSON或文本,而是修改PowerShell对象。
要向对象添加成员,您可以使用Add-Member
。在您的示例中:
Add-Member -InputObject $jsonparsed -MemberType NoteProperty -Name id -Value $env:COMPUTERNAME
现在您修改了对象,您可能希望将其恢复为JSON。您可以使用Convertto-JSON
。
$jsonparsed | ConvertTo-Json | Out-File 'C:\test\newdata.json'