我是Groovy的新手,正在尝试了解解决这一问题的最佳方法。为一个基本的问题道歉。
给定Json文件vehicles.json
:
{
"prod": [
{
"id": "CAR LARGE",
"vehicle": "102920",
"name": "BMW 325"
},
{
"id": "CAR MEDIUM",
"vehicle": "192039",
"name": "VOLVO V40"
},
{
"id": "CAR SMALL",
"vehicle": "29303",
"name": "SMART 500"
}
],
"preprod": [
{///entries for this environment...
我想为给定的环境随机挑选一辆汽车,然后将它的vehicle
和name
属性提取到2的列表中以备将来使用(实际上,该列表非常长)
此方法将获得随机的车辆编号:
def getVehicle() {
def jsonSlurper = new JsonSlurper()
def envVehiclesList = jsonSlurper.parseText(new File('src/main/resources/data/vehicles.json').text)
List<String> vehicleList = new ArrayList<>();
switch (System.getProperty("env")) {
case "prod":
vehicleList = (envVehiclesList.prod*.vehicle)
break;
case "preprod":
vehicleList = (envVehiclesList.preprod*.vehicle)
break;
case "dev":
vehicleList = (envVehiclesList.dev*.vehicle)
break;
default:
vehicleList = "18292" as List<String>
}
def rand = new Random()
def randomVehicle = vehicleList.get(rand.nextInt(vehicleList.size()))
log.info("Random Base Vehicle: {}", randomVehicle)
return randomVehicle
}
这给了我一个随机的vehicle
,例如192039
。我需要能够提取与随机选择的vehicle
相关联的name
,并将其存储在列表或对象中,以便我可以提取两者以供将来使用,例如randomVehicle
存储29303, SMART 500
,我可以通过索引从列表中获取29303, SMART 500
,或者使用getter(如果存储在对象中)。
任何建议都会对我的学习有所帮助。谢谢。
暂无答案!
目前还没有任何答案,快来回答吧!