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'