一尘不染

如何使用PowerShell更新JSON文件

json

我有一个mytest.json如下的json文件,我想使用更新值PowerShell script

update.json

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

我想编写一个PowerShell脚本,在其中if Name=="test1" I want to update Version= "3" 如何使用参数?


阅读 450

收藏
2020-07-27

共1个答案

一尘不染

这是一种方法:

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

根据@FLGMwt和@mikemaccana,我改进了ConvertTo-Jsonwith,-depth 32因为默认深度值为2,对于深度大于2的对象,尽管有对象,您仍会收到类信息。

2020-07-27