如何在Karate中从JSON对象数组同时打印id和name值?
Karate中关联打印id与name的实现方法
直接遍历响应中的原始数据数组是最可靠的方式,避免单独提取id和name数组后还要处理索引对应问题。以下是两种可行实现:
方法一:使用Karate原生forEach循环
# 获取完整的数据数组 def data = response.data # 初始化空数组存储格式化后的字符串 def formattedList = [] # 遍历每个元素,拼接id与name karate.forEach(data, function(item) { formattedList.add(item.id + ' - ' + item.name) }) # 打印用顿号分隔的结果 karate.log(formattedList.join('、'))
方法二:借助Java Stream API(适用于支持Java 8+的环境)
def data = response.data # 用Stream流处理并拼接成目标格式字符串 def result = data.stream() .map(item -> item.id + ' - ' + item.name) .collect(java.util.stream.Collectors.joining('、')) # 输出结果 karate.log(result)
如果一定要基于你已提取的id和name数组来实现,可以通过索引遍历(不推荐,因为若数组长度不一致会出问题):
def id = $response.data[*].id def name = $response.data[*].name def result = [] for (i = 0; i < id.length; i++) { result.add(id[i] + ' - ' + name[i]) } karate.log(result.join('、'))
内容的提问来源于stack exchange,提问作者Ajit Thakkar
相关产品推荐
相关产品推荐

