繁体   English   中英

使用 powershell 编辑 Json

[英]Edit Json using powershell

我有一个复杂的配置文件,我想使用 Powershell 进行更新。

有什么有用的方法可以实现吗?

我只想更新 SelectedCodes。

文件:

<?xml version="1.0"?>
<Settings>
  <ServerIPAddress>192.168.150.128:8090</ServerIPAddress>
  <SettingString>
    {
      "StationName":"Testing",
      "LocationCode":12,
      "AskForMoreDetails":false,
      "IsLaptop":false,
      "SpecificDepartment":"",
      "SelectedCodes":[
          {
            "Id":16,
            "Name":"Code Blue",
            "HtmlColorCode":"#0000FF",
            "TextColorCode":"#ffffff",
            "DisplayOrderNumber":1
          },
          {
            "Id":19,
            "Name":"CCRT",
            "HtmlColorCode":"#3CB371",
            "TextColorCode":"#FFFFFF",
            "DisplayOrderNumber":3
          }
      ],
      "AreaCode":12
    }
  </SettingString>
  <StartUpLaunchSet>False</StartUpLaunchSet>
  <CodeRedId>27</CodeRedId>
</Settings>

您首先必须创建另一个代码 object ,例如:

$additionalCode = [pscustomobject]@{
    Id='20'
    Name='Code Red'
    HtmlColorCode='#e83f3f'
    TextColorCode='#ffffff'
    DisplayOrderNumber='5'
}

要将其添加到您的文件中,我们首先必须读取文件

$filePath = 'c:\path\to\file.xml'
[XML]$xmlObject = Get-Content -Path $filePath

将 xml 的 JSON 部分转换为 PowerShell ZA8CFDE6331BD59EB2AC96F8911Z4B6

$settingJson = $xmlObject.Settings.SettingString | ConvertFrom-Json

添加之前创建的附加代码 object

$settingJson.SelectedCodes += $additionalCode

将 JSON 转换为字符串并将其存储回 XML object

$settingString = $settingJson | ConvertTo-Json
$xmlObject.Settings.SettingString = $settingString.ToString()

将 XML 文档保存到文件

$xmlObject.Save('c:\path\to\edited.xml')

或者直接覆盖文件

$xmlObject.Save($filePath)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM