import org.json.JSONObject;
import org.json.JSONArray;
import java.util.Random;
int minimum=0;
String[] code_array = new String[10];
String response= ctx.getPreviousResult().getResponseDataAsString();
log.info(response);
JSONObject jsonObject = new JSONObject(response);
JSONArray jsonArray = jsonObject.getJSONArray("options");
Integer opt_count= jsonArray.length();
vars.put('count',Integer.toString(opt_count));
if(opt_count > 1)
{
for (int a= 0; a < opt_count; a++)
{
code_array[a] .add(jsonArray.getJSONObject(a).getString("code"));
log.info(code_array[a]);
JSONArray new_array= jsonArray.getJSONObject(a).getJSONArray("values");
log.info(new_array);
int Value_count = new_array.size();
vars.put('VALUE_COUNT',Integer.toString(Value_count));
if(Value_count > 1)
{
Random r= new Random();
int random_value = r.nextInt(Value_count - minimum) + minimum;
vars.put('random_value1',random_value);
Integer FValue=
new_array.getJSONObject(random_value).getString("value");
vars.put('FValue',Integer.toString(FValue));
}
}
}
else{
vars.put('Attribute','First Attribute');
}
JSON与此同时:Parsing json objects(multiple) using groovy
我需要实现相同的选择:options [0] .values [0] .value
参数[0]上方的值是硬编码的。我想随机化并获得价值。
答案 0 :(得分:1)
如果我正确地解决了您的问题,那么您可以尝试这样的事情......
public static int getRandomIndex(int min, int max) {
Random r = new Random();
return r.nextInt((max - min) + 1) + min;
}
JSONObject jsonObject1 = Array.getJSONObject(getRandomIndex(0,length_of_JSONArray));