从有效负载读取属性有什么区别。例如,有效负载中有一个名为con_id的属性。当我像这样#[payload.con_id]读取这个属性时,它将变为null。其中#[payload。' con_id']返回值。
我知道的其他几个符号是#[payload [' con_id']]或#[json:con_id] 应该在哪种情况下使用哪一个?如果有任何特殊情况需要使用任何特定的符号,那么请让我知道这个场景。
此外,从支持mule软平台的角度来看,必须使用的常用符号是什么。
答案 0 :(得分:0)
在Mule 3中,任何这些语法都是有效的。除了json:
评估器用于查询json文档,其他用于查询地图/对象。另外,在Mule 3中不推荐使用json:
求值程序,而是转换为映射并使用下面的MEL表达式。
payload.property
payload.'property'
payload['property']
第一个在你的情况下失败的原因是特殊字符'_'的beacaue。下划线强制字段名称用引号括起来。
通常是。符号优于[''],因为它更短,用于访问地图字段。然后简单地在''中为具有特殊字符的任何字段包装属性名称。 在Mule 4中注意,您不需要先转换为地图/对象。 Dataweave表达式将MEL替换为表达式语言,允许您直接查询json或任何类型的有效负载,而无需先转换为映射。