私はgroovyにちょうど二日です。以下の構造でjsonファイルを解析する必要があります。私の実際のアイデアは、私は別の配列に基づいて異なる環境でのジョブのセットを実行する必要があるので、私は、私が解析するスクリプトの下にしようとした私のグルーヴィーJSONをGroovyスクリプト(JSONSlurperを使用)を使用して解析します。
{
"services": [{
"UI-Service": [{
"file-location": "/in/my/server/location",
"script-names": "daily-batch,weekly-batch,bi-weekly-batch",
"seq1": "daily-batch,weekly-batch",
"seq2": "daily-batch,weekly-batch,bi-weekly-batch",
"DEST-ENVT_seq1": ["DEV1", "DEV2", "QA1", "QA2"],
"DEST-ENVT_seq2": ["DEV3", "DEV4", "QA3", "QA4"]
}]
}, {
"Mobile-Service": [{
"file-location": "/in/my/server/location",
"script-names": "daily-batch,weekly-batch,bi-weekly-batch",
"seq1": "daily-batch,weekly-batch",
"seq2": "daily-batch,weekly-batch,bi-weekly-batch",
"DEST-ENVT_seq1": ["DEV1", "DEV2", "QA1", "QA2"],
"DEST-ENVT_seq2": ["DEV3", "DEV4", "QA3", "QA4"]
}]
}]
}
への入力ファイルとして、JSONのこのフォーマットを思い付いJSON
私が最初にすべてのサービスを読み取る必要がある def jsonSlurper = new JsonSlurper()
//def reader = new BufferedReader(new InputStreamReader(new FileInputStream("in/my/location/config.json"),"UTF-8"))
//def data = jsonSlurper.parse(reader)
File file = new File("in/my/location/config.json")
def data = jsonSlurper.parse(file)
try{
Map jsonResult = (Map) data;
Map compService = (Map) jsonResult.get("services");
String name = (String) compService.get("UI-Service");
assert name.equals("file-location");
}catch (E){
println Exception
}
(UI-サービス、モバイルサービス、など。)その後、その要素とJsonParserオブジェクトから読み取るための彼らの価値
ユーザーから、データを取得する必要があることに基づいて、入力としてENVT名(例:DEV2またはQA3)のみを取得しています。#1 - どのDEST-ENVT_seqグループに属しているかを調べる必要があります(例:DEST-ENVT_seq2)。グループ名に基づいて私はfiにする必要がありますseq(ex:seq2)を見つけ、それらのファイルをfile-locationからコピーして実行する – Mowgli