修复转义混乱字符串 转换为JSON.parse可识别的标准JSON格式
问题说明
现有存在转义混乱的类JSON字符串,无法直接通过JSON.parse解析:
"{\\'Ovcount\\':\\'0\\',\\'S1\\':\\'LU\\',\\'S2\\':\\'NewClientOrMove\\',\\'memoToDisplay\\':\\'LU -- New Client or Move\\\"}";
目标是转换为标准JSON格式字符串,可正常解析为JS对象:
'{"Ovcount":"0","S1":"LU","S2":"NewClientOrMove","memoToDisplay":"LU -- New Client or Move"}'
此前直接替换单引号为双引号的方案,未提前清理无效转义符和首尾多余包裹字符,导致结果首尾残留"\类无效字符,解析失败。
处理方案
核心逻辑是先清理字符串里的无效转义,再做引号替换,不要直接对带转义的原始串做全局引号替换。
针对给出的样例,直接用以下代码即可得到符合要求的结果:
// 原始待处理字符串 const raw = "{\\'Ovcount\\':\\'0\\',\\'S1\\':\\'LU\\',\\'S2\\':\\'NewClientOrMove\\',\\'memoToDisplay\\':\\'LU -- New Client or Move\\\"}"; const standardJson = raw // 清除所有无效的转义反斜杠 .replaceAll('\\', '') // 将所有单引号替换为JSON要求的双引号 .replaceAll("'", '"') // 去除首尾可能残留的空白、多余引号 .trim(); // 验证解析 const result = JSON.parse(standardJson); console.log(standardJson); // 输出:{"Ovcount":"0","S1":"LU","S2":"NewClientOrMove","memoToDisplay":"LU -- New Client or Move"}
注意事项
- 如果业务字符串本身包含需要保留的合法反斜杠(比如换行
\n、转义引号),不要直接全局删除所有反斜杠,改为针对性替换无效转义:将\\'替换为',将末尾残留的\\"替换为"即可,避免误删有效内容。 - 处理完成后可以先打印字符串确认首尾是
{和}包裹,没有多余的引号、斜杠,再调用JSON.parse即可正常解析。
内容的提问来源于stack exchange,提问作者Dragos
相关产品推荐
相关产品推荐

