首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Powershell -从PSObject (或多个JSON数组项)的多行字段中获取非空值的数组?

Powershell -从PSObject (或多个JSON数组项)的多行字段中获取非空值的数组?
EN

Stack Overflow用户
提问于 2019-01-30 04:48:51
回答 1查看 75关注 0票数 0

我有一些像这样的JSON (来自PSObject):

代码语言:javascript
复制
[
    {
        "cf_workflow_1":  1212,
        "cf_workflow_2":  null,
        "cf_workflow_3":  null
    },
    {
        "cf_workflow_1":  null,
        "cf_workflow_2":  9797,
        "cf_workflow_3":  null
    },
    {
        "cf_workflow_1":  6262,
        "cf_workflow_2":  null,
        "cf_workflow_3":  null
    }
]

我想提取一个简单的数组:

代码语言:javascript
复制
(1212,9797,6262)

我该怎么做呢?

下面是一些要使用的示例代码:

代码语言:javascript
复制
$tickets = @"
        [
            {
                "cf_workflow_1":  1212,
                "cf_workflow_2":  null,
                "cf_workflow_3":  null
            },
            {
                "cf_workflow_1":  null,
                "cf_workflow_2":  9797,
                "cf_workflow_3":  null
            },
            {
                "cf_workflow_1":  6262,
                "cf_workflow_2":  null,
                "cf_workflow_3":  null
            }
        ]
"@

$ticketsObject = $tickets | ConvertFrom-Json 

#Show the ticket data
$ticketsObject | Format-Table -AutoSize

#Create an array to hold all the non-null workflow numbers
#It should eventually contain the value (1212,9797,6262)
$workflowNumbers = @()

#Not sure what to do here to return only the non-null workflow numbers as an array?
$workflowNumbers = $ticketsObject | foreach{$_}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-30 05:08:22

这是可行的:

代码语言:javascript
复制
$ticketsObject | 
  ForEach-Object {$_.Psobject.properties | 
                 where-Object {$_.Name -like 'cf*' -and $_.Value } | select -expand Value}

我们的想法是查看每个对象的属性(仅cf*对象),并且仅查看具有值的对象,然后只获取值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54429341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档