我的有效载荷是
<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)
它打印空值.
更新:Mule的最新版本在MEL中具有JSON Path支持,因此像#[json:Name]现在这样的简单表达式可以工作.
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数组.
| 归档时间: |
|
| 查看次数: |
12875 次 |
| 最近记录: |