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

存储过程导出JSON时如何移除\t\n转义字符并适配其他系统?

移除转义字符并生成符合要求的JSON存储过程实现

根据你的需求,核心是先清洗邮件正文中的\t、\r\n转义字符,再生成指定结构的JSON。下面分常用数据库给出具体实现:

SQL Server 版本

CREATE PROCEDURE GenerateCleanEmailJSON
AS
BEGIN
    SET NOCOUNT ON;

    -- 先清洗数据,移除换行和制表符(可替换为空或空格,根据需求调整)
    SELECT 
        id,
        -- 替换\r\n和\t为空格,若要完全移除则换成''
        REPLACE(REPLACE(body, CHAR(13) + CHAR(10), ' '), CHAR(9), ' ') AS body
    INTO #TempCleanedEmails
    FROM YourEmailTable; -- 替换为你的实际表名

    -- 生成指定结构的JSON
    SELECT 
        id, body
    FROM #TempCleanedEmails
    FOR JSON PATH, ROOT('emailTexts');

    DROP TABLE #TempCleanedEmails;
END

执行存储过程后,会直接输出符合要求的JSON:

{
  "emailTexts": [
    {
      "id": 1,
      "body": "Dear Sir  Greetings!  ThankYou"
    }
  ]
}

MySQL 版本

DELIMITER //
CREATE PROCEDURE GenerateCleanEmailJSON()
BEGIN
    -- 直接清洗数据并构造JSON结构
    SELECT JSON_OBJECT(
        'emailTexts', JSON_ARRAYAGG(
            JSON_OBJECT(
                'id', id,
                'body', REPLACE(REPLACE(body, '\r\n', ' '), '\t', ' ')
            )
        )
    ) AS clean_email_json;
END //
DELIMITER ;

调用存储过程后,返回的结果即为目标格式JSON,其中换行和制表符已被替换(或移除)。

注意事项

  • 若不需要保留空格,直接把REPLACE函数中的' '替换为''即可完全移除转义字符对应的内容
  • 务必将代码中的YourEmailTable替换为你的实际邮件表名称
  • 可以先单独执行SELECT清洗语句,验证邮件正文的清洗效果后再整合到存储过程中

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 16:22:26