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

Node.js解析含反斜杠的JSON报错,如何不修改文件访问字段?

解决JSON文件反斜杠导致的SyntaxError问题(无需修改原文件)

这个问题确实很常见——JSON语法里的单个反斜杠是转义字符,你文件里的"C:\incoming"中,\i会被解析器当成一个未完成的转义序列(JSON只认\"、\\、\/等有限的转义组合),所以直接报错了。不用修改原文件,我们可以在读取文件后先预处理内容,再解析:

方案1:Python环境下的处理

步骤很简单,先读取文件原始内容,把单个反斜杠替换成双反斜杠,再用JSON解析器处理:

import json

# 读取原始文件内容
with open("your_file.json", "r", encoding="utf-8") as f:
    raw_content = f.read()

# 替换单个反斜杠为双反斜杠(符合JSON转义规则)
fixed_content = raw_content.replace("\\", "\\\\")

# 解析JSON并访问字段
data = json.loads(fixed_content)
print(data["file_paths"]["PROCESS"])  # 输出 C:\incoming
print(data["file_paths"]["FAILED"])   # 输出 C:\failed

方案2:Node.js环境下的处理

同样是先读取文件内容,再全局替换反斜杠,最后解析:

const fs = require('fs');

// 读取原始文件内容
const rawContent = fs.readFileSync('your_file.json', 'utf8');

// 全局替换单个反斜杠为双反斜杠
const fixedContent = rawContent.replace(/\\/g, '\\\\');

// 解析JSON并访问字段
const data = JSON.parse(fixedContent);
console.log(data.file_paths.PROCESS);  // 输出 C:\incoming
console.log(data.file_paths.FAILED);   // 输出 C:\failed

核心逻辑就是:通过手动补充转义,让原本不合法的JSON内容变成符合语法规范的格式,这样解析器就能正确识别路径里的反斜杠了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:26:15