我正在使用payloadfactory中介器,并在arg中添加了一个斜杠值,但是ESB将其转换为双斜杠,以下是与响应一起使用的payloadfactory
<payloadFactory media-type="json">
<format>
{
"channel": {
"text": "this is test Text $1"
}
}
</format>
<args>
<arg evaluator="xml" value="\n" />
</args>
</payloadFactory>
有效负载设置为
{
"channel": {
text": "this is test Text \\n"
}
}
我想要
{
"channel": {
"text": "this is test Text \n"
}
}
P.S“ \ n”将在属性调解器中设置为上方,我将通过arg将其放入有效负载工厂,这就是为什么我不能直接使用其格式的原因。
谢谢。
答案 0 :(得分:1)
这似乎是ESB中的一个限制。请尝试以下解决方法。 (是的,我知道。这似乎太过分了)
<enrich>
<source type="inline" clone="true">{
"replace" : "\n"
}</source>
<target type="body"/>
</enrich>
<property name="NEW_LINE" expression="json-eval($.replace)" scope="default" type="STRING"/>
<payloadFactory media-type="json">
<format> {
"channel": {
"text": "this is test Text $1"
}
}
</format>
<args>
<arg literal="true" evaluator="xml" expression="$ctx:NEW_LINE"/>
</args>
</payloadFactory>