2016-03-08 3 views
12

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

update.json

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

Я хочу написать скрипт Powershell где 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. Deep JSON получит' ToString''d, который, вероятно, не то, что вы хотите. Если у вас больше вложенных json, используйте параметр 'Depth':' ConvertTo-Json -Depth 20' – FLGMwt

Смежные вопросы