如何在Groovy脚本中从JSON响应提取指定值并作为变量使用
从Groovy API响应中提取NextVersionIncrement值
嘿,这事儿超简单!你的Groovy脚本已经成功拿到了解析后的API响应(看起来是个Groovy Map对象,对应你给出的键值对格式),要提取NextVersionIncrement并存为变量使用,只需要调整一点点代码就行:
首先,把API请求的返回结果存到一个变量里,然后直接通过键名获取对应值。修改后的脚本示例如下:
// 发起API请求并捕获响应结果 def releaseTemplate = newRelease.request(GET) { req -> requestContentType = ContentType.JSON headers.'X-Octopus-ApiKey' = 'API-xxx' response.success = { resp, json -> return json // 成功时返回解析后的Map对象 } response.failure = { resp -> return "Request failed with status ${resp.status}" } } // 处理结果并提取目标值 if (releaseTemplate instanceof Map) { // 提取NextVersionIncrement,Groovy支持点语法或方括号语法 def nextVersionIncrement = releaseTemplate.NextVersionIncrement // 也可以写成 releaseTemplate['NextVersionIncrement'] // 现在你可以把这个变量用在任何需要的地方啦 println "获取到的下一个版本增量:${nextVersionIncrement}" } else { // 请求失败时打印错误信息 println "API请求出错:${releaseTemplate}" }
关键说明:
- 你的
response.success回调已经返回了解析后的JSON对象(Groovy自动转成了Map),所以直接把这个返回值存到变量里就行 - 用
releaseTemplate.NextVersionIncrement(或方括号写法)就能直接拿到对应的值,Groovy对Map的访问很灵活 - 加个类型判断是为了区分成功和失败的情况(失败时返回的是错误字符串),避免脚本报错
内容的提问来源于stack exchange,提问作者Carmine Fabrizio
相关产品推荐
相关产品推荐

