在我的序列中有一个至少包含这些信息的属性中介"customerData“:
{
"key1": "value1",
"key2": "value2",
...
}见日志:
DEBUG {org.apache.synapse.mediators.builtin.PropertyMediator} - Setting property : customerData at scope : default to :
{
"key1":"value1",
"key2":"value2",
...
}
(i.e. result of expression : XX) {org.apache.synapse.mediators.builtin.PropertyMediator}如何访问每个密钥的获取值?
我一开始尝试记录它们,但不能将这些属性解析为有效的json属性。
尝试使用thoses语法:
非常感谢。
发布于 2021-01-08 09:17:59
据我所知,不可能在json评估中引用属性。您可以做的是使用customerData mediator1将“mediator1”属性设置为当前消息上下文,然后使用jsonpath检索数据。
例如:
<payloadFactory media-type="json">
<format>
$1
</format>
<args>
<arg evaluator="xml" expression="$ctx:customerData")/>
</args>
</payloadFactory>之后,您应该能够检索您正在寻找的数据:
<property name="customerDataLine" expression="json-eval($.key1)"/>
另外,如果您不想丢失当前上下文中的消息,可以将其临时保存到一个属性中,并将其放入上下文中。2
另一种可能的选择是将属性的“类型”设置为"OM",然后用xpath直接将数据检索为xml也可能有效。类似于:
<property name="customerDataLine" expression="$ctx:customerData/key1"/>
https://stackoverflow.com/questions/65423806
复制相似问题