从JSON文件中选择与属性值匹配的节点

时间:2017-04-20 12:46:12

标签: json powershell

我有一个存储在变量中的json对象。从json对象,我想获取与值匹配的节点。例如 - 具有machineId 12的项目。

我的json看起来像

{
    "items":  [
              {
                  "id":  "asdasd",
                  "machineId":  "12",
                  "placementGroup":  "",
                  "region":  "158",
                  "staticIp":  "",
                  "staticIpAction":  "",
                  "subnetIDs":  [

                                ]

              },
              {
                  "id":  "asdasd",
                  "machineId":  "43",
                  "placementGroup":  "",
                  "region":  "158",
                  "staticIp":  "",
                  "staticIpAction":  "",
                  "subnetIDs":  [

                                ]
              }
          ]
} 

1 个答案:

答案 0 :(得分:2)

使用Get-Content cmdlet加载json,并使用ConvertFrom-Json cmdlet将其转换为json。选择节点,并使用Where-Object cmdlet通过所需的 machineId 对其进行过滤:

Get-Content 'yourPathToYour.json' | 
    ConvertFrom-Json |
    Select-Object -ExpandProperty items |
    Where-Object machineId -eq 12

<强>输出:

id             : asdasd
machineId      : 12
placementGroup : 
region         : 158
staticIp       : 
staticIpAction : 
subnetIDs      : {}