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

How to perform string operation on JSON MEL in mule esb

我想对 MEL 执行一些字符串操作我在 MEL 中有以下表达式

<logger message="#[json:xy/PID/xy.3/AC]" level="INFO" doc:name="Logger"/>

输出是

19901026000000

我想先提取第 4 位数字,然后再提取 6,7 位数字。

我该怎么做??

谢谢

分两步试试怎么样?

<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)]" />

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

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

然后使用常规MEL遍历地图

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 中提取数据