PowerShell如何将更多数据附加到已解析的JSON?

PowerShell如何将更多数据附加到已解析的JSON?,json,powershell,Json,Powershell,我想使用PowerShell版本5向解析的JSON添加一些内容。我的代码: $file = 'C:\test\data.json' $json = Get-Content -Raw $file; $jsonparsed = ConvertFrom-Json -InputObject $json; $machineName = [System.Environment]::MachineName; $blockcvalue =@" { "id": "$mach

我想使用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”

当您使用
Convertfrom JSON
时,您使用JSON文件提供的属性和值构建了一个
PSCustomObject
。从现在起,您不再修改JSON或文本,而是修改PowerShell对象

要向对象添加成员,可以使用
addmember
。在您的示例中,这将是:

Add-Member -InputObject $jsonparsed -MemberType NoteProperty -Name id -Value $env:COMPUTERNAME
现在您已经修改了对象,您可能希望将其恢复为JSON。您可以使用
converttojson
来实现这一点

$jsonparsed | ConvertTo-Json | Out-File 'C:\test\newdata.json'