groovy中Json解析面临的困难

groovy中Json解析面临的困难,json,jenkins,groovy,jsonparser,Json,Jenkins,Groovy,Jsonparser,我有一个json,它的响应是{“canMerge”:false,“conflicted”:true,“output”:“conflicted”,“vetoes”:[{“summaryMessage”:“Requires approvals”,“detailedMessage”:“在合并这个请求之前,您还需要两个批准。”}] 我想根据“结果”筛选出数据:“冲突的”为此,我尝试了以下方法- def mergeResponse = readJSON file:mergeFileName for(mer

我有一个json,它的响应是
{“canMerge”:false,“conflicted”:true,“output”:“conflicted”,“vetoes”:[{“summaryMessage”:“Requires approvals”,“detailedMessage”:“在合并这个请求之前,您还需要两个批准。”}]

我想根据
“结果”筛选出数据:“冲突的”
为此,我尝试了以下方法-

def mergeResponse = readJSON file:mergeFileName
for(mergenew in mergeResponse.values)
{
    if(mergenew.outcome == "CONFLICTED") {
          echo "pull request can not merged"
}
当我在上面尝试时,它跳过了直接循环,尽管条件匹配正确,但我不明白为什么? 下面也尝试了

import groovy.json.JsonSlurper
def slurper = new JsonSlurper().parseText(mergenew)
assert slurper.outcome == "CONFLICTED"
     String id = mergenew.getString("id");
     echo "pull request can not merged"
获取上述内容的错误是

我还在jenkins脚本中批准了JsonSlurper.parseText的脚本

请帮帮我。非常感谢您的帮助。

尝试以下方法:(将文件名var设置为任何文件)

您可以使用读取json文件。这对我很有用:

def data = readJSON file: "${WORKSPACE}/data.json" // here just read the json file
def outcome = "${data.outcome}"
if(outcome == "CONFLICTED") {
    echo "pull request can not merged"
}

请添加。我尝试了此操作,但出现了错误-
发生了异常:在com.cloudbees.groovy.cps.impl.BlockScopeEnv.locals字段中的对象com.cloudbees.groovy.cps.impl。LoopBlockScopeEnv@2c73fea7在对象com.cloudbees.groovy.cps.impl中的com.cloudbees.groovy.cps.impl.proxyev.parent字段中。BlockScopeEnv@6e7ce95d野外com.cloudbees.groovy.cps.impl.proxyev.parent
import groovy.json.JsonSlurper 
def jsonSlurper = new JsonSlurper()
data = jsonSlurper.parse(new File(mergeFileName))
assert data.outcome == "CONFLICTED"
       println("pull request can not merged")
def data = readJSON file: "${WORKSPACE}/data.json" // here just read the json file
def outcome = "${data.outcome}"
if(outcome == "CONFLICTED") {
    echo "pull request can not merged"
}