Как обновить файл JSON с помощью PowerShell

У меня есть один файл mytest.json как mytest.json ниже. Я хочу обновить значения с помощью PowerShell script

update.json

{
    "update": [
        {
            "Name": "test1",        
            "Version": "2.1"
        },
        {
            "Name": "test2",        
            "Version": "2.1"
        }   
    ]
}

Я хочу написать сценарий PowerShell, в котором, if Name=="test1" я want to update Version= "3" Как я могу сделать это, используя параметры?

Ответ 1

Вот способ:

$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 вы получите информацию о классе, несмотря на объекты.