2016-09-08 5 views
-1

Я создаю автоматизированный процесс для JIRA с помощью System Center Orchestrator и Powershell. В этом примере у меня уже есть необработанные данные JSON из API JIRA Rest.Анализ ключа от JIRA Rest API с использованием Powershell

function ConvertFrom-Json20([object] $item){ 
    add-type -assembly system.web.extensions 
    $ps_js=new-object system.web.script.serialization.javascriptSerializer 

    #The comma operator is the array construction operator in PowerShell 
    return ,$ps_js.DeserializeObject($item) 
} 

[object]$JSON = '{Raw JSON Data from JIRA Variable}' 

$results = ConvertFrom-Json20($JSON) 

$key = @() 
$count = @() 
foreach($issue in $results.issues) { 
    $key += $issue.key 
    $count += $key.count 
} 

$key = @($key | Where-Object {$_ -ne $null}) 
$count = @($count | Where-Object {$_ -ne $null}) 

Сервер я использую не имеет последнюю версию пакета Powershell именно поэтому у меня есть функция ConvertFrom-Json20([object]) включена. В SCORCH $key и $count являются опубликованными переменными данных.

ответ

0

Используя приведенный выше код, вы можете получить поле ключа проблемы из данных JSON из API JIRA Rest API.

0

Для проблемы с powershell при установке версии 3.0 или более поздней версии на сервере у вас есть пара подходов к замене функции преобразования json.

  1. РЕГИСТРИРУЙСЯ и развертывание следующей интеграции пакета: http://orchestrator.codeplex.com/releases/view/76101
  2. Execute в PowerShell в блоке сценария Powershell для деятельности Run .NET Сценарий: https://automys.com/library/asset/powershell-system-center-orchestrator-practice-template

Я не понимая, почему вы необходимо выполнить итерацию с помощью ключей и сохранить значение, основанное на 1 для текущего индекса для ключа. Учитывая выше о powershell, следующее даст вам те же результаты, которые вы показали. В том случае, когда вы потребляете, массив $ key должен будет учитывать, что текущий индекс элемента равен нулю:

$results = ConvertFrom-Json $JSON 
$key = $results.issues | Where-Object {$_.key -ne $null}