如何使用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"
}
}
答案 0 :(得分:1)
$arr
不是关联数组(或PowerShell术语中的哈希表),而是嵌套对象。要在不知道属性名称的情况下更改该对象属性的值,您需要枚举属性并将修改后的值分配给它们:
$json.MyJsonObject.PSObject.Properties | ForEach-Object {
$_.Value = $_.Value -replace 'UpdateMe', 'REPLACEMENT'
}