【问题标题】:How to modify Json using Powershell如何使用 Powershell 修改 Json
【发布时间】:2020-08-18 23:07:13
【问题描述】:

我在文件“test.json”中保存了以下 JSON:

{
  "metadata": [
    {
      "src": [
        {
          "files": [
            "src/**.csproj"
          ]
        }
      ],
      "dest": "api",
      "disableGitFeatures": false,
      "disableDefaultFilter": false
    }
  ]
}

我想修改“src”元素。而不是:

  "src": [
    {
      "files": [
        "src/**.csproj"
      ]
    }
  ],

必须是:

    "src": [
        {
          "files": [
            "*.csproj"
          ],
          "cwd":".."
        }
      ],

我修改“文件”的第一个元素并添加“cwd”。这应该是直截了当的,但我正在努力在 powershell 中实现这一点。任何人都可以为我指出任何此类示例的正确方向吗?

提前感谢您的任何指点。

【问题讨论】:

    标签: json powershell file-get-contents


    【解决方案1】:

    您可以执行以下操作:

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

    【讨论】:

    • 这工作完美!!我只是在 Add-Member 的末尾添加了“-force”,以防它运行多次,但这对我来说非常有用,谢谢! :D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-29
    • 1970-01-01
    • 2014-01-27
    • 2016-10-11
    • 1970-01-01
    相关资源
    最近更新 更多