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

问题描述 投票:1回答:1

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

json powershell
1个回答
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'
© www.soinside.com 2019 - 2024. All rights reserved.