随机访问数组中的值

时间:2018-04-06 06:11:16

标签: java arrays json

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]上方的值是硬编码的。我想随机化并获得价值。

1 个答案:

答案 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));