如何在Apache Synapse中将响应中的属性值作为JSON获取?

时间:2017-12-05 08:45:37

标签: json wso2esb mediator synapse

有没有办法在Apache Synapse中将响应中的值作为JSON获取?

以下是api mediator的示例。

<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>log后,get-property('status')没有结果。

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

1 个答案:

答案 0 :(得分:0)

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

也许这是一个解决方案。您只需设置一个属性即可将JSON转换为XML。

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

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

JSON Support