有没有办法在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。
答案 0 :(得分:0)
不确定我是否真的理解您的问题,或者您不想使用JSON路径表达式。
也许这是一个解决方案。您只需设置一个属性即可将JSON转换为XML。
<property name="messageType" value="application/xml" scope="axis2"/>
然后,您应该能够使用XPath表达式访问它。以下链接将说明如何执行此操作。