如何使用 Powershell 修改 Json
How to modify Json using Powershell
我在文件 "test.json" 中保存了以下 JSON:
{
"metadata": [
{
"src": [
{
"files": [
"src/**.csproj"
]
}
],
"dest": "api",
"disableGitFeatures": false,
"disableDefaultFilter": false
}
]
}
我想修改 "src" 元素。而不是:
"src": [
{
"files": [
"src/**.csproj"
]
}
],
需要:
"src": [
{
"files": [
"*.csproj"
],
"cwd":".."
}
],
这里我修改了"files"的第一个元素,添加了"cwd"。这应该是直截了当的,但我正在努力在 powershell 中实现这一点。任何人都可以指出我的任何例子的正确方向吗?
提前感谢您的指点。
您可以执行以下操作:
$JSONObject = Get-Content test.json -Raw | ConvertFrom-Json
$JSONObject.metadata.src.files = ,'*.csproj'
$JSONObject.metadata.src | Add-Member -Name 'cwd' -Value '..' -MemberType NoteProperty
$JSONObject | ConvertTo-Json -Depth 5 | Set-Content test.json
棘手的部分是确保 .files
值是单个元素的数组。您可以使用数组子表达式运算符 @()
或一元运算符 ,
.
来执行此操作
我在文件 "test.json" 中保存了以下 JSON:
{
"metadata": [
{
"src": [
{
"files": [
"src/**.csproj"
]
}
],
"dest": "api",
"disableGitFeatures": false,
"disableDefaultFilter": false
}
]
}
我想修改 "src" 元素。而不是:
"src": [
{
"files": [
"src/**.csproj"
]
}
],
需要:
"src": [
{
"files": [
"*.csproj"
],
"cwd":".."
}
],
这里我修改了"files"的第一个元素,添加了"cwd"。这应该是直截了当的,但我正在努力在 powershell 中实现这一点。任何人都可以指出我的任何例子的正确方向吗?
提前感谢您的指点。
您可以执行以下操作:
$JSONObject = Get-Content test.json -Raw | ConvertFrom-Json
$JSONObject.metadata.src.files = ,'*.csproj'
$JSONObject.metadata.src | Add-Member -Name 'cwd' -Value '..' -MemberType NoteProperty
$JSONObject | ConvertTo-Json -Depth 5 | Set-Content test.json
棘手的部分是确保 .files
值是单个元素的数组。您可以使用数组子表达式运算符 @()
或一元运算符 ,
.