У меня есть json, и его ответ {"canMerge":false,"conflicted":true,"outcome":"CONFLICTED","vetoes":[{"summaryMessage":"Requires approvals","detailedMessage":"You need 2 more approvals before this pull request can be merged."}]}
, и я хочу отфильтровать данные на основе "outcome":"CONFLICTED"
, для этого я пробовал следующие способы:
def mergeResponse = readJSON file:mergeFileName
for(mergenew in mergeResponse.values)
{
if(mergenew.outcome == "CONFLICTED") {
echo "pull request can not merged"
}
, когда я пытаюсь выполнить выше, он пропускает, если l oop напрямую, даже если условия совпадают правильно, я не понимаю, почему? ТАКЖЕ ПРОПЫТАЛИСЬ НИЖЕ
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"
получение ошибки для вышеуказанного:
hudson.remoting.ProxyException: groovy.lang.MissingMethodException: No signature of method: groovy.json.JsonSlurper.parseFile() is applicable for argument types: (org.apache.commons.collections.map.ListOrderedMap$ListOrderedMapEntry) values: [canMerge=false]
Possible solutions: parse([B), parse([C), parse(java.io.File), parse(java.io.InputStream), parse(java.io.Reader), parse(java.net.URL)
Я также одобрил сценарий в утверждении сценария Дженкинса для JsonSlurper.parseText
Пожалуйста, помогите мне. Любая помощь приветствуется.