【问题标题】:How to get property value from response as JSON in Apache Synapse?如何从响应中获取属性值作为 Apache Synapse 中的 JSON?
【发布时间】:2018-05-18 20:44:26
【问题描述】:

有没有办法在 Apache Synapse 中以 JSON 形式从响应中获取价值?

这是一个示例 api 中介。

<api context="/accounts">
    <resource methods="GET">
        <inSequence>
            <log level="full"/>
            <send>
                <endpoint>
                    <address uri="http://localhost:8988/accounts/">
                    </address>
                </endpoint>
            </send>
        </inSequence>
        <outSequence>
            <log>
                <property name="Status" expression="get-property('status')">
            </log>
            <log level="full"/>
            <send/>
        </outSequence>
    </resource>
</api>

来自http://localhost:8988/accounts/ 的调用将产生这个json:

{
   "accountNumber": "1234567890123456",
   "status": "active"
}

点击outSeqeunce&gt;log 后,get-property('status') 没有任何结果。

我知道 WSO2 中有一个函数,例如 json-eval,但解决方案必须限制使用 Apache Synapse。

【问题讨论】:

    标签: json wso2esb mediator synapse


    【解决方案1】:

    不确定我是否真的理解您的问题或您为什么不想使用 JSON 路径表达式。

    也许这是一个解决方案。您可以通过简单地设置一个属性将 JSON 转换为 XML。

    <property name="messageType" value="application/xml" scope="axis2"/>
    

    然后您应该能够使用 XPath 表达式访问它。以下链接将解释如何执行此操作。

    JSON Support

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-02-22
      • 1970-01-01
      • 1970-01-01
      • 2021-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多