2016-03-08 28 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