从有效负载中获取属性的各种方法有哪些?

时间:2018-05-03 14:28:45

标签: mule

从有效负载读取属性有什么区别。例如,有效负载中有一个名为con_id的属性。当我像这样#[payload.con_id]读取这个属性时,它将变为null。其中#[payload。' con_id']返回值。

我知道的其他几个符号是#[payload [' con_id']]或#[json:con_id] 应该在哪种情况下使用哪一个?如果有任何特殊情况需要使用任何特定的符号,那么请让我知道这个场景。

此外,从支持mule软平台的角度来看,必须使用的常用符号是什么。

1 个答案:

答案 0 :(得分:0)

在Mule 3中,任何这些语法都是有效的。除了json:评估器用于查询json文档,其他用于查询地图/对象。另外,在Mule 3中不推荐使用json:求值程序,而是转换为映射并使用下面的MEL表达式。

payload.property
payload.'property'
payload['property']

第一个在你的情况下失败的原因是特殊字符'_'的beacaue。下划线强制字段名称用引号括起来。

通常是。符号优于[''],因为它更短,用于访问地图字段。然后简单地在''中为具有特殊字符的任何字段包装属性名称。

在Mule 4中

注意,您不需要先转换为地图/对象。 Dataweave表达式将MEL替换为表达式语言,允许您直接查询json或任何类型的有效负载,而无需先转换为映射。