Как получить данные из таблицы данных динамически? - PullRequest
0 голосов
/ 03 января 2019

У меня есть дата, как это:

|quotes|
|quote_a|
|quote_b|
|quote_c|

Я хочу получить все эти цитаты из таблицы данных и передать их в теле запроса json. Теперь я знаю, как сделать захват каждого отдельного элемента с помощью data.get(0), data.get(1) и data.get(2), но это не совсем динамично.

Я хочу использовать динамический способ извлечения всех кавычек из таблицы данных, помещая их в точку с запятой отдельно и помещая все это в тело.

Как я могу изменить приведенное ниже, чтобы добиться этого?

@When("^get quote)
    public void getQuotes(DataTable dataTable)
        throws Throwable
{

        List<List<String>> data = dataTable.raw();
        List<String> quotesList = new ArrayList<>();
        for (String quotesStr : data) {
            quotesList.add(quotesStr);
        }

        requestSpecificationFacade.body("{\n" +
           " \"quoteId\": " + data.get(0) + ", " + data.get(1) + ", " + data.get(2) +  "\n" +
                                            "}");


        }

1 Ответ

0 голосов
/ 03 января 2019

Если я правильно понимаю, у вас есть список строк и вы хотите динамически преобразовать его в одну строку, разделенную запятой (и пробелом).

Вы можете сделать это, используя Java 8 с String.join:

String output = String.join(", ", data);
requestSpecificationFacade.body("{\n" +
                   " \"quoteId\": " + output +  "\n" +
                                                    "}");

Или используя Java 7 с StringBuilder:

StringBuilder outputBuilder = new StringBuilder();
for (String quote : data) {
    outputBuilder.append(quote);
    outputBuilder.append(", ");
}
String output = outputBuilder.toString();

// Remove last comma
output = output.substring(0, output.length() - ", ".length());

requestSpecificationFacade.body("{\n" +
           " \"quoteId\": " + output +  "\n" +
                                            "}");

В обоих случаях output вернет quote_a, quote_b, quote_c.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...