Добавление ключа и значения в JSON с использованием Powershell и Excel - PullRequest
0 голосов
/ 20 декабря 2018

У меня есть файл Excel, из которого я читаю, чтобы заполнить JSON-файл параметров ARM.

Используемый код:

$ws = $wb.Worksheets.Item(1)
$data = Get-Content -Path "$path\$jsonfile" -Raw | ConvertFrom-Json
$Row = 2
$col = 2  
$data.parameters.client.value = $ws.Cells.Item($Row, $col).Value()
$data.parameters.user.value = $ws.Cells.Item($Row, $col).Offset(1, 0).Value()
$data.parameters.business.value = $ws.Cells.Item($Row, $col).Offset(2, 0).Value()
$data.parameters.dev.value = $ws.Cells.Item($Row, $col).Offset(3, 0).Value()

$data | ConvertTo-Json -Depth 9 | % {
    [System.Text.RegularExpressions.Regex]::Unescape($_)
} | Set-Content -Path "$newpath\$JSONFile"

Мне нужно, чтобы бизнес-значение было«ключ»: «значение»

В моем Excel у меня есть поля, как показано ниже

Name           Value    Key
$client        Client1
$user          User1 
$business      Bus-key   bus-value

Я не могу понять, как добавить «ключ»: «значение» кExcel и получить PowerShell, чтобы прочитать его и заполнить лист параметров.

Клиентские и пользовательские значения являются строками, поэтому они отлично работают.

Я надеялся на какое-то направление, в котором я ошибаюсь

Заранее спасибо:)

1 Ответ

0 голосов
/ 20 декабря 2018

Из того, что я понял из вашего скриншота, я думаю, что это может быть вам полезно:

$MyJson = '
{
    "FortinetTags": {
        "value":"6EB3B02F-50E5-4A3E-8CB8-2E129258317D"
    }
}' | ConvertFrom-Json

# We will create a hash table containing the required key/value pair
$MyJson.FortinetTags.value = @{'provider' = $MyJson.FortinetTags.value}

$MyJson | ConvertTo-Json

Это обновит ваш JSON так:

{    
    "FortinetTags":  {                         
        "value":  {
            "provider":  "6EB3B02F-50E5-4A3E-8CB8-2E129258317D"                
        }                     
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...