Powershell - получение значений из массива JSON, возвращаемых для определенной строки

Приносим извинения за то, что задали такой вопрос, пользователь PowerShell-самоучка. Возникла проблема, из-за которой я не могу получить значение, которое мне нужно, из возврата JSON в GET Invoke-RestMethod.

Я пытаюсь получить данные заявки JIRA, чтобы проверить, обновлено ли настраиваемое поле значением. Я попытался вызвать настраиваемое поле непосредственно в ответе, однако из-за способа форматирования ответа он вернет только столбец данных, и поэтому я не могу использовать этот ответ в своем коде.

Мой код выглядит следующим образом:

$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, поле иногда может быть пустым, что я проверю позже в скрипте. Есть идеи, как я мог это сделать?

Заранее спасибо!

1 ответ

Решение

Если $tester это объект со свойствами fieldId,label, а также value, вы можете использовать комбинацию доступа к члену (синтаксисobject.property) и Где-Объект:

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

Select-Object также работает:

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

Чтобы вернуть объект, содержащий конкретного покупателя:

$tester | Where fieldId -eq 'customfield_10191'
Другие вопросы по тегам