如何动态地从数据 table 中检索数据?
How to retrieve data from data table dynamically?
我有这样的数据table:
|quotes|
|quote_a|
|quote_b|
|quote_c|
我想从数据 table 中检索所有这些引用并将它们传递到 json 请求正文中。现在我知道如何通过 data.get(0)
、data.get(1)
和 data.get(2)
获取每个单独的项目,但这并不是真正的动态。
我想使用动态方式从数据 table 中检索所有引号,将它们放在一个逗号分隔的位置,并将所有引号放在正文中。
如何更改以下内容以实现此目的?
@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" +
"}");
}
如果我理解正确的话,您有一个字符串列表,并希望将其动态转换为以逗号(和 space)分隔的单个字符串。
您可以使用 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
将 return quote_a, quote_b, quote_c
。
我有这样的数据table:
|quotes|
|quote_a|
|quote_b|
|quote_c|
我想从数据 table 中检索所有这些引用并将它们传递到 json 请求正文中。现在我知道如何通过 data.get(0)
、data.get(1)
和 data.get(2)
获取每个单独的项目,但这并不是真正的动态。
我想使用动态方式从数据 table 中检索所有引号,将它们放在一个逗号分隔的位置,并将所有引号放在正文中。
如何更改以下内容以实现此目的?
@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" +
"}");
}
如果我理解正确的话,您有一个字符串列表,并希望将其动态转换为以逗号(和 space)分隔的单个字符串。
您可以使用 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
将 return quote_a, quote_b, quote_c
。