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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 09:24:00