Karate:如何将两个数组合并为指定格式的JSON对象/映射?
合并数组生成指定映射的解决方案
你可以借助Karate的内置方法快速完成两个数组的配对与合并,以下是具体实现方式:
方法一:基于已生成的map1、map2合并
利用karate.zip()将两个数组按索引配对,再通过map遍历每一对元素,合并成包含目标字段的对象:
* def array1 = ['a','b'] * def array2 = [1,2] * def map1 = karate.mapWithKey(array1, 'firstparam') * def map2 = karate.mapWithKey(array2, 'secondparam') // 合并对应索引的对象 * def combined = karate.zip(map1, map2).map(pair => Object.assign({}, pair[0], pair[1]))
方法二:直接基于原始数组处理(更简洁)
跳过中间的map1、map2步骤,直接对原始数组配对并生成目标结构:
* def array1 = ['a','b'] * def array2 = [1,2] * def combined = karate.zip(array1, array2).map(pair => ({ firstparam: pair[0], secondparam: pair[1] }))
调用目标Feature文件
如果需要逐个将合并后的对象传递给Feature文件并收集结果,可以使用循环遍历:
* def result = [] * karate.forEach(combined, item => result.push(karate.call('target.feature', item)))
如果是将整个数组作为参数传递,直接传入combined即可,后续在目标Feature中按需处理数组内容。
内容的提问来源于stack exchange,提问作者Snehith tammewar
相关产品推荐
相关产品推荐

