如何利用Jenkins REST API提取actions参数中的value字段
Jenkins REST API提取指定字段解决方案
问题说明
需要通过Jenkins REST API从响应中提取actions下parameters里的value字段(如PROJECT.47、PROJECT.54),当前使用的请求仅能获取首个actions,无法单独提取value元素。当前请求链接:
http://10.100.6.52:8080/jenkins/view/Deployment/api/json?tree=jobs[displayName,lastBuild[actions[*[*]{1}]{0}]]&pretty=true
API响应示例:
{ "_class" : "hudson.model.ListView", "jobs" : [ { "_class" : "hudson.model.FreeStyleProject", "displayName" : "Batch_Dep", "lastBuild" : { "_class" : "hudson.model.FreeStyleBuild", "actions" : [ { "_class" : "hudson.model.ParametersAction", "parameters" : [ { "_class" : "hudson.model.StringParameterValue", "name" : "release", "value" : "PROJECT.47" } ] } ] } }, { "_class" : "hudson.model.FreeStyleProject", "displayName" : "PROJECT_Execution", "lastBuild" : { "_class" : "hudson.model.FreeStyleBuild", "actions" : [ { "_class" : "hudson.model.ParametersAction", "parameters" : [ { "_class" : "hudson.model.StringParameterValue", "name" : "release", "value" : "PROJECT.54" } ] } ] } } ]
解决方法
修改请求的tree参数,直接指定字段路径到value层级,即可精准提取目标内容。修改后的请求链接:
http://10.100.6.52:8080/jenkins/view/Deployment/api/json?tree=jobs[displayName,lastBuild[actions[parameters[value]]]]&pretty=true
参数说明
jobs[displayName,lastBuild[...]]:指定返回jobs数组中的displayName和lastBuild字段lastBuild[actions[parameters[value]]]:进一步钻取lastBuild下的actions,再定位到parameters数组中的value字段,响应会仅返回所需的value内容,同时保留displayName用于对应任务名称。
参考资料要点(翻译整理)
- Jenkins远程访问API:支持通过
tree参数过滤JSON响应,可精准指定需要返回的字段路径,减少冗余数据传输。 - 驯服Jenkins JSON API的深度与树结构:详细讲解了
tree参数的语法规则,包括数组嵌套、字段筛选的写法,通过层级路径直接定位目标字段,避免返回无关内容。
内容的提问来源于stack exchange,提问作者DoThe New
相关产品推荐
相关产品推荐

