PowerShell调用rest api url并从中解析一个值



我有一个文本文件rest_api.txt,其中包含JIRA问题url,如下所示

http://jira.tzgs.com/rest/api/2/issue/INF-1000?fields=fixVersions
http://jira.tzgs.com/rest/api/2/issue/INF-1001?fields=fixVersions
http://jira.tzgs.com/rest/api/2/issue/PRJ-6000?fields=fixVersions

当调用这些url时,它返回类似于Jason文件的结构。例如

{"expand":"renderedFields,names,schema,transitions,operations,editmeta,changelog","id":"54970","self":"http://jira.tzgs.com/rest/api/2/issue/54970","key":"INF-1000","fields":{"fixVersions":[{"self":"http://jira.tzgs.com/rest/api/2/version/15541","id":"15541","name":"NETBOOK 7.0.0","archived":false,"released":false}]}}

其中,"NETBOOK 7.0.0"是这个特定JIRA问题的修复版本。

有人能帮我一个PowerShell脚本,将调用这些url和解析只有这个修复版本值,并把它写到这样一个文件,请?

INF-1000     NETBOOK 7.0.0
INF-1001     NETBOOK 7.0.0
PRJ-6000     NETAPP 1.0.0

我不能为您编写从所有URL获取信息的代码(参见SO的On Topic问题策略)。但是我将帮助您进行解析,以使您从正确的方向开始。这就是PowerShell(3.0+版本)有一个非常好的ConvertFrom-Json解析器的地方。

$String = '{"expand":"renderedFields,names,schema,transitions,operations,editmeta,changelog","id":"54970","self":"http://jira.tzgs.com/rest/api/2/issue/54970","key":"INF-1000","fields":{"fixVersions":[{"self":"htt
p://jira.tzgs.com/rest/api/2/version/15541","id":"15541","name":"NETBOOK 7.0.0","archived":false,"released":false}]}}'
$JsonObj = ConvertFrom-Json $String

然后返回你的字段,你可以这样访问它:

PS C:> $JsonObj.key
INF-1000
PS C:> $JsonObj.fields.fixVersions.name
NETBOOK 7.0.0

最新更新