Powershell - 从 JSON 数组 return 获取特定行的值

Powershell - Getting values from JSON array return for specific row

抱歉不得不问这样的问题,这里是自学成才的 powershell 用户。遇到一个问题,我似乎无法从 GET Invoke-RestMethod 上的 JSON return 获得我想要的值。

我正在尝试提取 JIRA 票证数据,以便检查自定义字段是否已更新为值。我尝试直接在响应中调用自定义字段,但是由于响应的格式设置方式,它只会 return 数据列,因此我无法在我的代码中使用此响应。

我的代码如下:

$response = Invoke-RestMethod "https://jira-ceg.atlassian.net/rest/servicedeskapi/request/$JIRATICKET" -Method 'GET' -Headers $headers 

$tester = $response.requestFieldValues


$tester

我从 JIRA 得到的回复如下:

    fieldId           label              value                                                                                                                                                   
-------           -----              -----                                                                                                                                                   
summary           Summary            STAFF-NEW - XXXX- NAME 
customfield_10108 iTrent Information Employee ID: XXXX...                                                                                                                              
customfield_10086 Checklist Text     --- ERROR - No Role Entitlement Found - Contact Service Admin                                                                                           
description       Description        A new employee has joined. Please process with the data above.                                                                                          
customfield_10191 New AD Address     XXXX@XXXXX.com                                                                                                                
                                                                                                                                                

我想获取字段customfield_10191的值,该字段有时也可能为空,稍后我将在脚本中测试。知道我该怎么做吗?

提前致谢!

如果 $tester 是具有属性 fieldIdlabelvalue 的对象,您可以使用 member access (syntax object.property) and Where-Object:[=20 的组合=]

($tester | Where fieldId -eq 'customfield_10191').value

Select-Object 也有效:

$tester | Where fieldId -eq 'customfield_10191' | Select-Object -Expand value

到 return 包含特定客户的对象:

$tester | Where fieldId -eq 'customfield_10191'