сталкиваются с трудностями при разборе Json в groovy - PullRequest
0 голосов
/ 09 мая 2020

У меня есть 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

Пожалуйста, помогите мне. Любая помощь приветствуется.

Ответы [ 2 ]

0 голосов
/ 09 мая 2020

Вы можете использовать Шаги служебной программы конвейера для чтения файла 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"
}
0 голосов
/ 09 мая 2020

попробуйте следующее: (установите имя файла var в соответствии с именем файла)

import groovy.json.JsonSlurper 
def jsonSlurper = new JsonSlurper()
data = jsonSlurper.parse(new File(mergeFileName))
assert data.outcome == "CONFLICTED"
       println("pull request can not merged")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...