gpt4 book ai didi

java - 骡子 ESB : Expression Filter with regex() function

转载 作者:行者123 更新时间:2023-12-02 06:00:59 25 4
gpt4 key购买 nike

我有一些 Json 数据作为有效负载,例如:

{
"name" : "Italy"
}

我想用正则表达式过滤我的字段“name”的内容。

现在我使用这个过滤器。没有真正的错误,但不匹配。

<expression-filter expression="regex('^[a-zA-Z]{3,15}$' , 'json:name')" doc:name="Expression"/>

作为使用此 regex() 函数的证明,如果我将 '(.*)' 作为正则表达式模式,它就可以工作。

<expression-filter expression="regex('(.*)' , 'json:name')" doc:name="Expression"/>

文档是here .

有人理解我的错误吗?

[编辑]

那么马修的解决方案是这样的:

    <set-variable variableName="PayloadBackup" value="#[payload]" doc:name="Variable"/><json:json-to-object-transformer returnClass="java.util.Map" doc:name="JSON to Object"/>
<expression-transformer expression="#[payload['name'].matches('^[a-zA-Z]{3,15}$')]" doc:name="Expression"/>
<expression-filter expression="#[payload]" doc:name="Expression"/>
<set-payload value="#[PayloadBackup]" doc:name="Set Payload"/>

虽然很丑。

如果字符串与正则表达式不匹配,引擎会回答:

null (java.lang.NullPointerException). Message payload is of type: Boolean

我还无法捕获此异常。

谢谢

最佳答案

请参阅 JSON processing 部分或者看看this similar question

关于java - 骡子 ESB : Expression Filter with regex() function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22672755/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com