Читать JSON файл через PowerShell - PullRequest
0 голосов
/ 28 апреля 2020

Мне нужен список значений, который change_flag равен TRUE.

. В списке мне нужно, например, "ZIPZOOMBIN_VERSION", "KERNEL_VERSION", который я использую в качестве списка массива в другом файле PowerShell

{
  "ZIPZOOMBIN_VERSION": {
    "change_flag": "TRUE",
    "localpath": " "
  },
  "KERNEL_VERSION": {
    "change_flag": "TRUE",
    "localpath": " "
  },
  "ACTIVE_MQ": {
    "change_flag": "FALSE",
    "localpath": " "
  }
}

list = [ZIPZOOMBIN_VERSION, KERNEL_VERSION]

1 Ответ

0 голосов
/ 28 апреля 2020

Ключ в том, чтобы перебирать свойства объекта, которые вы не знаете заранее. Вы можете прочитать больше об этом в этом вопросе. Вы можете сделать это следующим образом:

$content = @"
{
  "ZIPZOOMBIN_VERSION": {
    "change_flag": "TRUE",
    "localpath": " "
  },
  "KERNEL_VERSION": {
    "change_flag": "TRUE",
    "localpath": " "
  },
  "ACTIVE_MQ": {
    "change_flag": "FALSE",
    "localpath": " "
  }
}
"@
$myObject = ConvertFrom-Json -InputObject $content
$myList = @()
foreach ($property in $myObject.PSObject.Properties) {
    if ($property.Value.change_flag -ilike "TRUE") {
        $myList += $property.Name
    }
}
$myList

Содержимое $myList будет состоять из двух строк ZIPZOOMBIN_VERSION и KERNEL_VERSION.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...