簡體   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