2016-03-08 30 views
12

我有一個JSON文件mytest.json像下面我想用powershell script我怎麼使用PowerShell

update.json

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

更新值我想編寫一個PowerShell腳本更新JSON文件,其中if Name=="test1" I want to update Version= "3" 我怎樣才能使用參數?

回答

23

這裏有一個辦法:

$a = Get-Content 'D:\temp\mytest.json' -raw | ConvertFrom-Json 
$a.update | % {if($_.name -eq 'test1'){$_.version=3.0}} 
$a | ConvertTo-Json | set-content 'D:\temp\mytestBis.json' 
+0

超快速的作品十分感謝@JPBlanc – Neo

+15

當心中那個'的ConvertTo-Json'具有2.深層JSON的默認深度將得到'ToString''d這可能是不是你想要的。 如果您有更多的嵌套json,請使用'Depth'參數:'ConvertTo-Json -Depth 20' – FLGMwt