下面是我的jenkinsgroovy脚本,用来读取数据并作为json文件写入。
import groovy.json.JsonOutput
def arn = ""
def name = ""
def os = ""
pipeline {
agent any
stages {
stage('Hello') {
steps {
script{
def ret = sh(script: 'aws devicefarm list-devices', returnStdout: true)
def jsonObj = readJSON text: ret
def currentVersion = "13.0"
def values = currentVersion.split('\\.')
def json_str = ""
for(String item: jsonObj.devices) {
os = item.os
if(!os.contains("\\.")) {
osV = os + ".0"
} else{
osV = os
}
def osValues = osV.split('\\.')
if(values[0].toInteger() <= osValues[0].toInteger()) {
name = item.name
def data = [
name: "$name",
os: "$os",
]
json_str += JsonOutput.toJson(data)
}
}
def json_beauty = JsonOutput.prettyPrint(json_str)
writeJSON(file: 'message124.json', json: json_beauty)
}
}
}
}
}
但是这里,它只保存第一个值。而不是所有的值。你能告诉我我哪里错了吗
1条答案
按热度按时间bqjvbblv1#
现在还不是100%清楚您最终想要什么,但我 * 认为 * 您想要一个JSON文件,其中包含OS大于一个幻数的项目。
提供足够的数据来重现问题是很有帮助的,并且消除所有不直接相关的东西。我认为你需要的是这样的东西:
输出: