我有一个JSON响应,类似于{"id":10,"name":"ABCD","deptId":0,"address":null}
我需要拆分这个JSON并提取id以传递给另一个服务。我的mule xml如下所示
<jersey:resources doc:name="REST">
<component class="com.employee.service.EmployeeService"/>
</jersey:resources>
<object-to-string-transformer doc:name="Object to String"/>
<logger message="Employee Response #[payload]" level="INFO" doc:name="Logger"/>
<set-payload value="#[payload]" doc:name="Set Payload" />
<json:object-to-json-transformer doc:name="Convert String to JSON" />
<logger message="JSON Response #[payload]" level="INFO" doc:name="Logger"/>
<json:json-to-object-transformer returnClass="java.util.Map" />
<expression-transformer expression="#[payload]" />
<collection-splitter />当我运行此命令时,我得到以下错误
对象"java.util.LinkedHashMap“的类型不正确。类型必须为“{接口java.lang.Iterable,接口java.util.Iterator,接口org.mule.routing.MessageSequence,接口java.util.Collection}”(java.lang.IllegalArgumentException)。消息负载的类型为: LinkedHashMap
如何修复此错误?
谢谢
发布于 2015-07-07 16:59:57
我可以通过编写一个自定义的转换器来实现这一点。
发布于 2015-07-07 17:38:27
删除最后四行代码。在flowvars中设置记录器#payload.id并访问它
发布于 2015-07-07 22:48:52
我相信你得到的错误已经在这一部分了,<collection-splitter />。你已经调试过了吗?
不确定拆分器是用来做什么的,但是一旦有了HashMap类型的有效负载,就可以简单地执行#[payload.id]来获取id。
https://stackoverflow.com/questions/31261102
复制相似问题