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

Camunda 如何正确实现JSON数组是否包含指定元素的条件判断

可行实现方案

方案1:使用Camunda SPIN JSON处理组件(推荐)

该方案适配Camunda原生生态,不会出现元素不存在时的异常报错问题,首先确保项目已引入Camunda SPIN相关依赖,条件表达式写法如下:

<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${ S(json_array).elements().contains("foo") }</bpmn:conditionExpression>
  • 逻辑说明:S()是SPIN提供的JSON解析入口,elements()方法会将JSON数组转换为Java List对象,contains()方法判断元素是否存在,不存在时直接返回false,完全匹配需求。

方案2:提前转换为Java List类型流程变量

无需引入额外组件的轻量化方案,在流程变量赋值阶段,直接将JSON字符串数组提前反序列化为java.util.List类型的流程变量,假设命名为jsonArrayList,后续条件表达式直接调用List原生方法:

<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${ jsonArrayList.contains("foo") }</bpmn:conditionExpression>

该写法依赖Java List原生实现,稳定性最高。

方案3:临时兼容写法

如果暂时无法调整流程变量和依赖,可以采用JSON字符串直接匹配实现判断,仅适用于元素值不含引号等特殊字符的场景:

<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${ json_array != null and json_array.toString().contains('"foo"') }</bpmn:conditionExpression>

内容的提问来源于stack exchange,提问作者Rasmus Faber

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 12:39:02