mule从json有效载荷获取数据

Tec*_*ind 4 groovy xpath mule

我的有效载荷是

<json:json-to-object-transformer returnClass="java.lang.Object" doc:name="JSON to Object"/>
<logger message="#[payload]" level="INFO" doc:name="Logger"/>`
Run Code Online (Sandbox Code Playgroud)

打印(这是给出的json数组输入)

[{"姓名":"我的名字","地址":"add1","位置":"NY"}]

现在,我需要从有效负载中获取数据:

<logger message="#[payload.Name]" level="INFO" doc:name="Logger"/>

它打印为null.如何使用MEL从有效负载获取数据?有没有更简单的方式进入Groovy或xpath?

编辑

将单个json数据传递为:

{"Name":"My name","Address":"add1","Location":"NY"}
Run Code Online (Sandbox Code Playgroud)

记录:

  <logger message="#[payload.Name]" level="INFO" doc:name="Logger"/>
Run Code Online (Sandbox Code Playgroud)

它打印空值.

Dan*_*eón 12

在Mule ESB 3.7.0中

这项工作:

#[json:Name]
Run Code Online (Sandbox Code Playgroud)


Dav*_*sot 8

更新:Mule的最新版本在MEL中具有JSON Path支持,因此像#[json:Name]现在这样的简单表达式可以工作.

MEL提示页面

MEL没有直接支持JSON.json-to-object-transformer可以将JSON有效负载转换为易于使用MEL解析的简单数据结构层次结构.

所以对于你的情况:

<json:json-to-object-transformer returnClass="java.lang.Object" />
<logger message="#[message.payload[0].Name]" level="INFO" />
Run Code Online (Sandbox Code Playgroud)

我添加了[0]因为你在这里展示的内容:

[{"Name":"My name","Address":"add1","Location":"NY"}]

不是JSON对象,而是包含单个JSON对象的JSON数组.