2016-03-08 13 views
12

Ich habe eine JSON-Datei mytest.json wie unten Ich möchte Werte aktualisieren mit powershell scriptwie aktualisiere ich JSON-Datei mit Powershell

update.json

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

I, in der ein Powershell-Skript schreiben wollen if Name=="test1" I want to update Version= "3" Wie kann ich es mit Parametern tun? Hier

Antwort

23

ist ein Weg:

$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

superschnelle Werke großer Dank @JPBlanc – Neo

+15

Be ware, dass 'ConvertTo-Json' hat eine Standardtiefe 2. Tiefe json erhalten' ToString''d denen wahrscheinlich nicht was du willst. Wenn Sie mehr verschachtelte Json haben, verwenden Sie den 'Depth' Parameter:' ConvertTo-Json-Depth 20' – FLGMwt