Karate场景拼接JSON值执行!contains匹配报错 无需Java工具如何实现
错误根因
你的写法存在两个语法问题:
- 外层
{}构造的是JSON对象,必须包含键:值结构,你只写了值没有定义键,不符合JSON语法规范,所以触发了JSON解析异常。 #()嵌入式表达式语法多用于请求体、参数等场景的变量替换,直接定义变量执行计算逻辑时不需要用该语法包裹。
解决方法
Karate原生支持ES6标准的JavaScript语法,不需要额外编写Java工具就能实现字段拼接,两种常见场景的实现方式如下:
- 场景1:将所有
Kurztext_1和所有Kurztext_2的内容拼接为单个字符串做匹配
# 提取两个字段的所有值分别拼接后再合并为总字符串 * def concatField = responseartikel.map(x => x.Kurztext_1).join('') + responseartikel.map(x => x.Kurztext_2).join('') * match concatField !contains expected
- 场景2:将数组每个元素对应的两个字段拼接为新数组,判断数组中不存在目标值
# 每个元素的两个字段单独拼接,生成等长的新数组 * def concatField = responseartikel.map(x => x.Kurztext_1 + x.Kurztext_2) * match concatField !contains expected
如果你的responseartikel是单个对象而非数组,写法可以更简化:
* def concatField = responseartikel.Kurztext_1 + responseartikel.Kurztext_2 * match concatField !contains expected
内容的提问来源于stack exchange,提问作者Stephanie H
相关产品推荐
相关产品推荐

