如何使用 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 值是单个元素的数组。您可以使用数组子表达式运算符 @() 或一元运算符 ,.

来执行此操作