更新关联数组

时间:2017-11-13 10:23:22

标签: json powershell

如何使用PowerShell正确更新JSON关联数组?

我有以下设置:

$json = Get-Content $file -Raw | ConvertFrom-Json
$arr = $json.MyJsonObject

foreach ($entry in $arr) {
    ??? = $entry -replace "UpdateMe", "REPLACEMENT"
}

要填写什么而不是???

JSON看起来像这样:

{
  "MyJsonObject" : {
      "A": "UpdateMe",
      "B": "UpdateMe"
  }
}

1 个答案:

答案 0 :(得分:1)

$arr不是关联数组(或PowerShell术语中的哈希表),而是嵌套对象。要在不知道属性名称的情况下更改该对象属性的值,您需要枚举属性并将修改后的值分配给它们:

$json.MyJsonObject.PSObject.Properties | ForEach-Object {
    $_.Value = $_.Value -replace 'UpdateMe', 'REPLACEMENT'
}