如何通过Mule将结果聚合到JSON对象中
我使用的是Mule 3.4,我有一个Mule流,它遍历负载中的行项目,将每个行项目分别传递给web服务,并为每个行项目返回JSON响应 我想知道的是,Mule中是否有方法将这些响应聚合到一个大型JSON对象中,并将其作为响应返回 谢谢如何通过Mule将结果聚合到JSON对象中,json,mule,mule-studio,mule-component,Json,Mule,Mule Studio,Mule Component,我使用的是Mule 3.4,我有一个Mule流,它遍历负载中的行项目,将每个行项目分别传递给web服务,并为每个行项目返回JSON响应 我想知道的是,Mule中是否有方法将这些响应聚合到一个大型JSON对象中,并将其作为响应返回 谢谢 如果您使用 这将为您提供一组地图。然后在foreach/loop之外,将映射列表转换回json,这将为您提供一个json数组,使用: 例如: <foreach> <!--call service - returns {"id" : "1"}
如果您使用
这将为您提供一组地图。然后在foreach/loop之外,将映射列表转换回json,这将为您提供一个json数组,使用:
例如:
<foreach>
<!--call service - returns {"id" : "1"} then {"id" : "2"} etc.-->
<json:json-to-object-transformer returnClass="java.util.HashMap" />`
</foreach>
<json:object-to-json-transformer />
<!-- should output [{"id" : "1"}, {"id" : "2"}] -->
`
对于每个项目,如果您使用
这将为您提供一组地图。然后在foreach/loop之外,将映射列表转换回json,这将为您提供一个json数组,使用:
例如:
<foreach>
<!--call service - returns {"id" : "1"} then {"id" : "2"} etc.-->
<json:json-to-object-transformer returnClass="java.util.HashMap" />`
</foreach>
<json:object-to-json-transformer />
<!-- should output [{"id" : "1"}, {"id" : "2"}] -->
`
对于每个项目,如果您使用
这将为您提供一组地图。然后在foreach/loop之外,将映射列表转换回json,这将为您提供一个json数组,使用:
例如:
<foreach>
<!--call service - returns {"id" : "1"} then {"id" : "2"} etc.-->
<json:json-to-object-transformer returnClass="java.util.HashMap" />`
</foreach>
<json:object-to-json-transformer />
<!-- should output [{"id" : "1"}, {"id" : "2"}] -->
`
对于每个项目,如果您使用
这将为您提供一组地图。然后在foreach/loop之外,将映射列表转换回json,这将为您提供一个json数组,使用:
例如:
<foreach>
<!--call service - returns {"id" : "1"} then {"id" : "2"} etc.-->
<json:json-to-object-transformer returnClass="java.util.HashMap" />`
</foreach>
<json:object-to-json-transformer />
<!-- should output [{"id" : "1"}, {"id" : "2"}] -->
`
虽然Ryan的每种方法都有效(在我看来,没有太多好的选择),但如果第二次web服务调用1000行项目中的某行项目时出于任何原因引发异常,您最好弄清楚如何处理错误
请参考Ryan Carter的其他答案来处理:
在我的用例中,我的负载是一个字符串列表,其中每个字符串都是表示顺序的json。我使用了一个定制的java转换器(不允许在表达式转换器中使用groovy),并以这种方式创建了json。这不是最好的解决办法,但似乎是弊中之轻
Groovy将类似于(根本没有经过测试):
虽然Ryan对每种方法的支持都是可行的(我认为没有太多好的选择),但如果第二次web服务调用1000行项目中的一行项目时,出于任何原因引发异常,您最好弄清楚如何处理错误 请参考Ryan Carter的其他答案来处理: 在我的用例中,我的负载是一个字符串列表,其中每个字符串都是表示顺序的json。我使用了一个定制的java转换器(不允许在表达式转换器中使用groovy),并以这种方式创建了json。这不是最好的解决办法,但似乎是弊中之轻 Groovy将类似于(根本没有经过测试):
虽然Ryan对每种方法的支持都是可行的(我认为没有太多好的选择),但如果第二次web服务调用1000行项目中的一行项目时,出于任何原因引发异常,您最好弄清楚如何处理错误 请参考Ryan Carter的其他答案来处理: 在我的用例中,我的负载是一个字符串列表,其中每个字符串都是表示顺序的json。我使用了一个定制的java转换器(不允许在表达式转换器中使用groovy),并以这种方式创建了json。这不是最好的解决办法,但似乎是弊中之轻 Groovy将类似于(根本没有经过测试):
虽然Ryan对每种方法的支持都是可行的(我认为没有太多好的选择),但如果第二次web服务调用1000行项目中的一行项目时,出于任何原因引发异常,您最好弄清楚如何处理错误 请参考Ryan Carter的其他答案来处理: 在我的用例中,我的负载是一个字符串列表,其中每个字符串都是表示顺序的json。我使用了一个定制的java转换器(不允许在表达式转换器中使用groovy),并以这种方式创建了json。这不是最好的解决办法,但似乎是弊中之轻 Groovy将类似于(根本没有经过测试):