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

Extract values from a json response in mule flow

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

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

使用<json:json-to-object-transformer returnClass="java.util.HashMap" doc:name="JSON to Object" />然后你可以使用MEL #[message.payload.result.p_ProviderID]

获取值

例如使用<json:json-to-object-transformer/>后logger中p_ProviderID的值如下:-

<json:json-to-object-transformer returnClass="java.util.HashMap" doc:name="JSON to Object" />
<logger message="#[message.payload.result.p_ProviderID]" level="INFO" doc:name="Logger"/>

对于如此简单的 Json,您最好使用 JsonPath。像这样的简单表达式 #[json:result/p_ProviderID] 会给你你想要的。

P.S.: 从 3.5 开始,Mule 对 JsonPath 的支持非常有限,而且不如 Xpath 灵活。

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