给定一个标准的json字符串值:
$jsonString = '{ "baz": "quuz", "cow": [ "moo", "cud" ], "foo": "bar" }'
Run Code Online (Sandbox Code Playgroud)
如何才能让这一切变得非常漂亮,最好不要使用暴力正则表达式?
到目前为止我发现的最简单的方法是:
$jsonString | ConvertFrom-Json | ConvertTo-Json
Run Code Online (Sandbox Code Playgroud)
然而,这似乎有点傻.
我有一个 JSON 格式的以下文件:
之前ConvertTo-JSON:
[
{
"Yura": {
"Cashier": {
"branch": "release/Retail-v4.0",
"configuration": "RetailDemo Debug",
"datetime_deployed": "Apr 18 2018 07:45:05",
"deployed_by": "anonymous",
"host": "cashier2-retail4.testing.aws.com",
"job": "http://jenkins-testing.aws.com:8080/job/CashierDeployment",
"lineserver": "",
"messagebus": "",
"product": "Cashier",
"publish_profile": "cashier2.retail.dev.pubxml"
},
"ContentManager": {
"branch": "release/Retail-v3.31.1",
"configuration": "RetailDemo Debug",
"datetime_deployed": "Jan 17 2018 11:59:24",
"deployed_by": "anonymous",
"host": "contentmanager2-retail3.testing.aws.com",
"job": "http://jenkins-testing.aws.com:8080/job/ContentManagerDeployment",
"lineserver": "",
"messagebus": "",
"product": "ContentManager",
"publish_profile": "..\\ContentManager.PublishProfiles\\contentmanager2.retail5.dev.pubxml"
}
}
}
]
Run Code Online (Sandbox Code Playgroud)
使用此代码操作数据后:
$json = Get-Content 'D:\script\test.json' -encoding utf8 | ConvertFrom-Json
$json.yura.ContentManager.branch = 'test'
Run Code Online (Sandbox Code Playgroud)
我将 …