如何从powershell中读取json文件并提取一个数组列表

问题描述 投票:1回答:1

如果改变标志为真,需要数组中的名称,例如list = [kernel,activemq]如何通过PowerShell提取。

[
    {
        "name"           : "kernel",
        "change_flag"    : "TRUE",
        "localpath"      : "setupfiles\\controlroom\\kernel.jar",
        "unpack"         : "FALSE",
        "filename"       : ["",""]
    },
    {
        "name"           : "activemq",
        "change_flag"    : "TRUE",
        "localpath"      : "setupfiles\\controlroom\\activemq.jar",
        "unpack"         : "FALSE",
        "filename"       : ["",""]
    },
    {
        "name"           : "ignite-server",
        "change_flag"    : "FALSE",
        "localpath"      : "setupfiles\\controlroom\\ignite-server.jar",
        "unpack"         : "FALSE",
        "filename"       : []
    }
]
json powershell
1个回答
1
投票

使用 ConvertFrom-Json cmdet来将你的文本转换为json,然后你可以使用 Where-Object cmdlet。

$json = 
@'
[
    {
        "name"           : "kernel",
        "change_flag"    : "TRUE",
        "localpath"      : "setupfiles\\controlroom\\kernel.jar",
        "unpack"         : "FALSE",
        "filename"       : ["",""]
    },
    {
        "name"           : "activemq",
        "change_flag"    : "TRUE",
        "localpath"      : "setupfiles\\controlroom\\activemq.jar",
        "unpack"         : "FALSE",
        "filename"       : ["",""]
    },
    {
        "name"           : "ignite-server",
        "change_flag"    : "FALSE",
        "localpath"      : "setupfiles\\controlroom\\ignite-server.jar",
        "unpack"         : "FALSE",
        "filename"       : []
    }
]
'@

($json | ConvertFrom-Json) | Where-Object change_flag -eq 'TRUE' | Select-Object -ExpandProperty name
© www.soinside.com 2019 - 2024. All rights reserved.