【问题标题】:Mulesoft transform message escaping forward slashMulesoft 转换消息转义正斜杠
【发布时间】:2018-10-26 05:13:27
【问题描述】:

在转换消息中,我正在尝试编写 MongoDB 查询。查询需要像这样的正斜杠:

{Event: { $in: [ /NOVEMBER/, /OUTDOORS/]}}

我目前正在转换消息中写这个:

{
    Event: {'\$in':
        [
          / flowVars.Month / ,
          / flowVars.LocationType /
        ]
    }
}

并收到错误消息: 输入'/'没有可行的选择 输入 ',' 没有可行的替代方案

有谁知道如何解决这些问题?

【问题讨论】:

    标签: java mongodb mule dataweave


    【解决方案1】:

    您是否只想使用++ 进行简单的字符串连接? 感谢下面的@jerney 指出了我之前回答中的冗余代码。

    %dw 1.0
    %output application/json
    
    %function wrap(s) "/" ++ s ++ "/"
    ---
    Event: {
        "\$in": [
            wrap(flowVars.Month),
            wrap(flowVars.LocationType)
        ]
    }
    

    【讨论】:

    • 还可以创建一个函数 %function wrap(s) "/" ++ s ++ "/" 并使用它,以防您将大量使用该逻辑。
    • 这个特殊的功能仍然没有达到我想要的效果。 Mule 给我以下错误:org.mule.api.MessagingException:无法从“com.mulesoft.weave.mule.WeaveMessageProcessor$WeaveOutputHandler”转换为“org.bson.Document”(org.mule.api.transformer.变压器异常)。消息负载的类型:WeaveMessageProcessor$WeaveOutputHandler
    • 这是一个完全不同的问题。如果此答案为您的有效负载生成正确的结构(即回答您的问题)并让您通过了您遇到的错误,您应该将其标记为已接受。如果您提出有关 WeaveOutputHandler -> org.bson.Document 问题的另一个问题,我相信有人会愿意提供帮助。
    猜你喜欢
    • 1970-01-01
    • 2012-04-29
    • 2015-01-23
    • 2016-08-07
    • 2014-09-28
    • 1970-01-01
    • 2019-11-19
    相关资源
    最近更新 更多