我们说我有JSON对象
{
"trigger": {
"schedule.main": {
"interval": "5m"
}
}
}
我需要修改" 5m"到" 10m"。
当我在脚本中明确键入要更改的变量的整个路径时,可以轻松实现这一点:
$jsonStr = @'
{
"trigger": {
"schedule.main": {
"interval": "5m"
}
}
}
'@
$jsonObj = ConvertFrom-Json $jsonStr
Write-Output ($jsonObj | ConvertTo-Json)
$jsonObj.trigger."schedule.main".interval = "10m"
Write-Output ($jsonObj | ConvertTo-Json)
现在我想用作为字符串提供的属性的完整路径获得相同的结果(这来自一些配置文件以及要更改的值):
$propertyPath = "trigger.""schedule.main"".interval"
如何在PowerShell脚本中实现这一点,因此我不会硬编码属性名称的路径,而是从提供的字符串动态构建它?
我尝试了iex
,它修改了JSON对象的副本:
$prop = (iex "`$jsonObj.$propertyPath")
$prop = "30m"
主$jsonObj
仍未修改,这是一个问题。