如何在Camunda DMN输入表达式中使用上下文JSON对象的指定字段值
在Camunda DMN中获取JSON数组第一个元素的字段值
我来帮你搞定这个问题~你之前的JavaScript表达式没生效,主要是因为DMN的输入表达式需要直接返回结果,不需要额外的变量声明语句。下面给你两种可行的解决方案:
方案1:使用JavaScript表达式
直接简化你的表达式,去掉变量声明,直接返回目标字段值即可:
application.applicants[0].city
解释:Camunda在执行JavaScript输入表达式时,会直接执行并返回表达式的结果,不需要用var定义中间变量,所以直接链式访问就能拿到第一个申请人的城市值。
方案2:使用FEEL表达式(DMN标准推荐)
如果你想用Camunda推荐的FEEL表达式(符合DMN规范),需要注意FEEL的数组索引是从1开始的,所以写法是:
application.applicants[1].city
这种写法更贴合DMN的标准语法,在Camunda中同样可以正常生效。
另外要确认一下:你的application流程变量确实是已经被解析为可访问的对象(不是JSON字符串),不过从你说Java里可以用application.applicants.get(0).city正常获取来看,这个条件已经满足了,不用额外处理JSON解析的问题。
内容的提问来源于stack exchange,提问作者sajjad
相关产品推荐
相关产品推荐

