JSONファイルの読み取りでいくつかの問題に直面しています。 Jenkins Active Choice Parameterを使用して、Groovyスクリプトを介してJSONファイルから値を読み取ります。これが私のJSONファイルの外観です。
{
"smoke": "Test1.js",
"default": "Test2.js"
}
Groovyスクリプトで煙とデフォルトを出力したい。以下は私のグルーヴィーなコードがどのように見えるかです。
import groovy.json.JsonSlurper
def inputFile = new File(".\TestSuitesJ.json")
def InputJSON = new JsonSlurper().parseText(inputFile)
InputJson.each
{
return[
key
]
}
上記のコードは私には機能しません。誰かがより良いグルーヴィーな方法を提案できますか?
あなたは本当にgroovy開発キットのページを読むべきです、そして this 特に。
あなたの場合、parseText()
はLazyMap
インスタンスを返すため、各クロージャーで取得するit
変数はMap.Entry
インスタンスを表します。したがって、println it.key
で必要なものを取得できます。
よりグルーヴィーな方法は次のようになります。
inputJson.each { k, v ->
println k
}
この場合、groovyは、マップ内のすべての要素のキー(k)と値(v)をクロージャに渡します。
実行時にJSONファイルをインポートしようとしているのと同じような状況にある人。 ActiveChoiceパラメーターを使用して問題を解決しました。 JenkinsのActiveChoiceParameterプラグインにGroovyスクリプトを作成するオプションがあります。そこで、JSONファイルをインポートして目的の結果を達成するためのコードを以下に記述しました。
import groovy.json.JsonSlurper
def inputFile = new File('.//TestSuitesJ.json')
def inputJSON = new JsonSlurper().parse(inputFile)
def keys = inputJSON.keySet() as List
@senseiに、Groovyの学習を手伝ってくれてありがとう。