You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WSO2 EI Outlook Connector JSON解析错误 如何转义字符串内JSON对象

问题根因

报错的核心是你拼接得到的emailcontent中包含JSON自带的双引号",直接填入预定义JSON结构的$3占位符时,这些内部双引号会和外层JSON的字符串边界引号冲突,破坏了整个请求的JSON结构,解析器识别到不匹配的语法标记就抛出missing } after property list错误。


解决方案

方案1:脚本内手动转义特殊字符(快速修复)

修改Script Mediator代码,拼接邮件内容后对所有JSON特殊字符做转义,再存入属性:

<script language="js"><![CDATA[
var log = mc.getServiceLog(); 
log.info("Logging inside Script Mediator");  
var testTicketNo=mc.getProperty("DummyTicketNo");  
var Incomingpayload=mc.getProperty("Incomingpayload");  
// 拼接邮件内容时先处理要嵌入的JSON串
var requestJsonStr = JSON.stringify(JSON.parse(Incomingpayload));
var emailcontent="Hi Team<br/><br/> The requested Ticket Creation Done.. and the Created Ticker No is: " + testTicketNo + "<br/><br/> Below is the request Data for your reference...<br/><br/>" + requestJsonStr + "<br/> Let us know if you have any queries.. <br/><br/>Cheers<br/> WSO2 Team";
// 转义整个邮件内容的特殊字符,适配外层JSON结构
var escapedContent = emailcontent.replace(/"/g, '\\"').replace(/\n/g, '\\n').replace(/\r/g, '\\r');
mc.setProperty('content',escapedContent);
]]></script>

方案2:使用PayloadFactory Mediator构造请求(更稳定,推荐)

WSO2原生的PayloadFactory Mediator会自动处理所有JSON转义逻辑,不需要手动处理特殊字符,避免人为转义遗漏:

<payloadFactory media-type="json">
    <format>
    {
        "Message": {
            "ToRecipients": $1,
            "Body": {
                "ContentType": "$2",
                "Content": "$3"
            }
        }
    }
    </format>
    <args>
        <arg evaluator="xml" expression="$ctx:recipientList"/> <!-- 替换为你自己的收件人列表属性 -->
        <arg evaluator="xml" expression="$ctx:contentType"/> <!-- 替换为你自己的内容类型属性,通常填HTML -->
        <arg evaluator="xml" expression="$ctx:emailcontent"/> <!-- 直接传未转义的原始emailcontent属性即可,payloadFactory自动转义 -->
    </args>
</payloadFactory>

使用这个方案时,你的Script Mediator不需要做任何转义逻辑,正常拼接emailcontent存入属性即可,PayloadFactory会自动处理内部双引号、特殊字符的转义,保证生成的JSON结构合法。


内容的提问来源于stack exchange,提问作者Justin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 05:48:02