You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 13:27:01