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

如何在JSON中添加ANSI颜色编码?转义字符报错如何解决

错误原因

JSON 规范里不支持\x格式的十六进制转义字符,仅支持\u开头的4位Unicode转义,或者\n、\\这类标准转义序列。你写的\x1B是JavaScript专属的十六进制转义写法,不符合JSON语法要求,所以会触发非法转义字符报错。

修复方案

方案1:替换为Unicode转义(推荐,无需改动原有JS代码)

\x1B对应的ASCII码为27,匹配的Unicode转义写法是\u001b,全局替换JSON里所有\x1B为\u001b即可,修改后合法的JSON内容如下:

{
    "SYSTEM": {
        "SUCCESS": "[\u001b[48;2;0;0;0mSYSTEM\u001b[0m]::[\u001b[38;2;0;255;0m\u001b[48;2;0;0;0mSUCCESS\u001b[0m]",
        "RELOADED": "[\u001b[48;2;0;0;0mSYSTEM\u001b[0m]::[\u001b[38;2;0;255;0m\u001b[48;2;0;0;0mRELOADED\u001b[0m]",
        "RELOADING": "[\u001b[48;2;0;0;0mSYSTEM\u001b[0m]::[\u001b[38;2;255;158;3m\u001b[48;2;0;0;0mRELOADING...\u001b[0m]",
        "ERROR": "[\u001b[48;2;0;0;0mSYSTEM\u001b[0m]::[\u001b[38;2;255;0;0m\u001b[48;2;0;0;0mERROR\u001b[0m]",
        "SHUTDOWN": "[\u001b[48;2;0;0;0mSYSTEM\u001b[0m]::[\u001b[38;2;255;0;0m\u001b[48;2;0;0;0mSHUTDOWN\u001b[0m]"
    }
}

修改完成后直接用原来的JS代码调用即可,ANSI颜色效果完全和预期一致。

方案2:转义反斜杠+JS侧解析

如果不想用Unicode转义,也可以把所有\x1B写成\\x1B,让JSON把内容存储为普通字符串,在JS侧使用时额外做一次转义解析即可,示例代码:

const parseAnsi = str => str.replace(/\\x1B/g, '\x1B');
console.log(`${parseAnsi(logs["SYSTEM"].SHUTDOWN)} - The bot has been shut down.`)

该方案需要改动原有调用逻辑,更推荐使用方案1。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 19:36:04