我有一个json文件mytest.json
像下面我想用PowerShell script
更新值
update.json
{
"update": [
{
"Name": "test1",
"Version": "2.1"
},
{
"Name": "test2",
"Version": "2.1"
}
]
}
我想写一个PowerShell脚本,其中if Name=="test1" I want to update Version= "3"
我如何使用参数做到这一点?
这是一种方式:
$a = Get-Content 'D:\temp\mytest.json' -raw | ConvertFrom-Json
$a.update | % {if($_.name -eq 'test1'){$_.version=3.0}}
$a | ConvertTo-Json -depth 32| set-content 'D:\temp\mytestBis.json'
根据@FLGMwt和@mikemaccana,我用ConvertTo-Json
改进了-depth 32
,因为默认的深度值是2,对于深度超过2的对象,你将接收到无论对象的类信息。