You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Groovy中用JsonSlurper结合if/else获取指定stage的状态

解决方法:获取指定name的Stage状态

我来帮你搞定这个问题!你可以通过Groovy的内置方法快速定位到目标stage,然后提取它的状态值,这里有两种实用的实现方式:

方法一:用find快速定位(推荐)

这种方式直接从stages列表中筛选出name为stop-emu的stage对象,比遍历所有元素更高效:

def stageJson = new JsonSlurper().parseText(response?.content)
// 精准匹配name为'stop-emu'的stage
def stopEmuStage = stageJson.stages.find { it.name == 'stop-emu' }
// 提取状态,同时处理找不到目标stage的情况避免空指针
def status = stopEmuStage ? stopEmuStage.status : 'NOT_FOUND'
echo "stop-emu stage status: ${status}"

方法二:遍历过程中判断(适合需要额外处理其他stage的场景)

如果你需要在遍历所有stage的同时记录目标状态,可以在循环里加入判断逻辑:

def stageJson = new JsonSlurper().parseText(response?.content)
def status = 'NOT_FOUND'
stageJson.stages.each { stage ->
    echo(stage.toString())
    // 匹配到目标stage时更新状态值
    if (stage.name == 'stop-emu') {
        status = stage.status
    }
}
echo "stop-emu stage status: ${status}"

小提示

  • find方法会返回第一个匹配条件的元素,刚好满足你查找单个stop-emu stage的需求
  • 加入stopEmuStage ? ... : 'NOT_FOUND'的判断是为了防止找不到对应stage时触发空指针异常,你可以根据实际场景调整默认值

内容的提问来源于stack exchange,提问作者david

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:51:49