2016-03-08 11 views
12

Mam jeden plik json mytest.json jak poniżej Chcę zaktualizować wartości używając powershell scriptjak zaktualizować plik json przy użyciu PowerShell

update.json

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

Chcę napisać skrypt powershell gdzie if Name=="test1" I want to update Version= "3" jak mogę to zrobić za pomocą parametrów?

Odpowiedz

23

Oto sposób:

$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

superszybkie działa świetnie dzięki @JPBlanc – Neo

+15

uważaj, że 'ConvertTo-Json' ma głębokość domyślnej 2. Głębokie json dostanie' ToString''d który jest prawdopodobnie nie to, co chcesz. Jeśli masz więcej zagnieżdżonych jsonów, użyj parametru 'Depth':' ConvertTo-Json -Depth 20' – FLGMwt

Powiązane problemy