从mule流中的json响应中提取值

时间:2015-08-11 05:38:44

标签: json mule

我有这样的json响应 - 我想提取p_ProviderID的值。 请指导我如何在骡子流中做到这一点?

{ 
"category" : "Address",
"status": "SUCCESS",
"result":  {
              "p_ProviderID": 4, 
	      "p_NewProvInd": "Exist"
           }
} 

3 个答案:

答案 0 :(得分:8)

使用apply,然后您可以使用MEL <json:json-to-object-transformer returnClass="java.util.HashMap" doc:name="JSON to Object" />

获取值

例如,您可以在使用#[message.payload.result.p_ProviderID]后在记录器中获取 p_ProviderID 的值,如下所示: -

<json:json-to-object-transformer/>

答案 1 :(得分:4)

对于像这样简单的Json,你最好使用JsonPath。像#[json:result/p_ProviderID]这样的简单表达式可以为您提供所需的内容。

P.S。:从3.5开始,Mule对JsonPath的支持非常有限,并不像Xpath那样灵活。

答案 2 :(得分:0)

我们需要使用Json到Object转换器并将返回类类型设置为java.util.Map或Java.util.List - 在您的情况下,这是Map。如果在Json中有多个相同类型的元素,则需要使用java.util.List