【问题标题】:Extract values from a json response in mule flow从 mule 流中的 json 响应中提取值
【发布时间】:2015-11-03 05:12:43
【问题描述】:

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

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

【问题讨论】:

  • 我不知道 mule 是什么,但你的 JSON 肯定是不正确的。错误的引号,未加引号的字符串。

标签: json mule


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      使用<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"/>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-04-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-07-02
        相关资源
        最近更新 更多