如何在mule esb中对JSON MEL执行字符串操作

时间:2015-04-17 13:11:02

标签: mule mule-studio mule-el

我想对MEL进行一些字符串操作我在MEL

中有以下表达式
<logger message="#[json:xy/PID/xy.3/AC]" level="INFO" doc:name="Logger"/>

输出

199010.26亿

我想提取前4位数字然后提取6,7位数字。

我该怎么做?

由于

3 个答案:

答案 0 :(得分:1)

如何分两步尝试?

<set-variable variableName="result" value="#[json:ADT_A01/PID/PID.3/CX.1]" />
<set-variable variableName="result" value="#[result.substring(0,4)]#[result.substring(5,7)]" />

答案 1 :(得分:1)

正如@Ryan Hoegg回答中的评论所述,自Mule 3.3以来,JSON表达式求值程序已被弃用,因此最好的方法是使用json来对象转换器

<json:json-to-object-transformer doc:name="JSON to Object" returnClass="java.util.HashMap"/>

然后使用传统的MEL遍历Map

答案 2 :(得分:0)

JsonPath表达式现在已经过折旧,你甚至得不到足够的文件来做它。
所以,目前你需要使用: - <json:json-to-object-transformer returnClass="java.lang.Object" doc:name="JSON to Object" />
<json:json-to-object-transformer returnClass="java.util.HashMap" doc:name="JSON to Object" />
甚至<json:json-to-object-transformer returnClass="java.util.List" doc:name="JSON to Object" />从JSON中提取数据,具体取决于JSON数据