wso2 的 属性 中介中的 Concat 操作无效

Concat operation in property mediator of wso2 is invalid

 <property name="Code" expression="json-eval($.Code)" scope="default" type="STRING"/>
   <property name="Endpoint" expression="json-eval($.data.InternalConfig.Events.Code.Endpoint)" scope="default" 


 <property expression="fn:concat(json-eval($.data.InternalConfig.Events'.'get-property('Code')'.'Endpoint)" name="URL" type="STRING" scope="default"/>

一个 属性 从有效载荷中获取,另一个从存储库中获取,我正在尝试合并到 1 属性

我相信您正在尝试在运行时使用动态值从负载中提取数据。如果是,我们可以利用 WSO2 平台中的 Script Mediator 来访问 JSON 有效载荷。

例如:

下面给出了一个示例负载,您正尝试使用 codeendpoint

从负载中提取数据:'some value here'
{
    "userId": 10,
    "code": 1,
    "body": {
        "id": 2,
        "endpoint": "some-key",
        "1": {
            "anotherId": 30,
            "title": "Lorum ipsum",
            "some-key": "some value here"
        }
    }
}

下面给出了一个示例调解序列,使用脚本调解器来实现您的要求

<?xml version="1.0" encoding="UTF-8"?><sequence xmlns="http://ws.apache.org/ns/synapse" name="mediation-sequence">

    <script language="js">
        <![CDATA[

            // read the JSON payload from the message context
            var payload = mc.getPayloadJSON();

            // read the property values
            var code = payload["code"];
            var endpoint = payload["body"]["endpoint"];

            var extracted_value = payload["body"][code][endpoint];

            // set the extracted value as property to message context
            mc.setProperty("ExtractedValue", extracted_value);
        ]]>
    </script>

    <log level="custom">
        <property name="Extracted value" expression="$ctx:ExtractedValue" />
    </log>
</sequence>

希望这可以帮助您实现您的要求。