首页 > 解决方案 > 通过 PowerShell 读取 JSON 文件

问题描述

我需要价值列表,change_flagTRUE.

在列表中,我需要例如“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]

标签: jsonpowershell

解决方案


关键是迭代对象的属性,这是您事先不知道的。你可以在这个问题中阅读更多关于它的信息。你可以这样做:

$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_VERSIONKERNEL_VERSION


推荐阅读