首页 > 解决方案 > 如何从 PowerShell 中的 Azure DevOps 工作项解析 JSON

问题描述

我有一个 PS 脚本可以从 DevOps API 获取有关工作项的信息。具体来说,当我调用工作项 API 时,会返回一个名为“字段”的属性。当我使用 ConvertFromJson 时,它似乎无法解析该属性。有什么方法可以配置 ConvertFromJson 还是我需要进行文本解析?

这是代码:

$uri = "https://dev.azure.com/H.......s/B....o/_apis/build/builds/$env:RELEASE_ARTIFACTS_DOCMGMT_BUILDID/workitems"

Write-Host "Uri $uri"
Write-Host "AccessToken: $env:SYSTEM_ACCESSTOKEN"

$result = Invoke-WebRequest -Uri $uri -Method GET -Headers @{ Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN" } -UseBasicParsing | ConvertFrom-Json

$itemId = $result.value[0].id
Write-Host $itemId


$uri = "https://dev.azure.com/H.....s/B....o/_apis/wit/workItems/$($itemId)?`$expand=All"

Write-Host "Uri $uri"

$result = Invoke-WebRequest -Uri $uri -Method GET -Headers @{ Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN" } -UseBasicParsing | ConvertFrom-Json -Depth 5

Write-Host $result

这是输出的屏幕截图。注意“字段”属性是空的吗?

DevOps 的输出

这是 Postman 中相同的调用的样子

邮递员屏风帽

标签: powershellazure-devopsazure-pipelinespowershell-4.0azure-pipelines-release-pipeline

解决方案


推荐阅读