我在来自第三方的文件夹中有一个json
,但我{@ {1}}的数据我无法控制,只需要json
,并且操纵。
有时我会收到此错误:
未捕获的SyntaxError:JSON输入意外结束 在JSON.parse
json是有效的json,但是由于某些特殊字符,我遇到了以上错误:
R:\ 30-09-18 \ LTP \ p
有时我会遇到解析错误:
无法解析.........
问题:我如何删除所有特殊字符,以使parse
不会抛出任何JSON.parse(data);
这是我要尝试的:
error
请提前帮助我!!!
答案 0 :(得分:0)
这是您的解决方案
var fs = require('fs');
var path = require('path');
var fileLoc = path.join(__dirname,'file.json');
var content = fs.readFileSync(fileLoc,'utf8');
content = content.replace(/\\/g, '\\\\')
content = JSON.parse(filecontent);
当您要分析包含反斜杠字符的字符串时,应将每个反斜杠更改为两个反斜杠。下面是在Chrome浏览器的控制台标签中运行的示例
content = '{"path":"R:\\30-09-18\\LTP\\p"}'
JSON.parse(content)
VM835:1 Uncaught SyntaxError: Unexpected number in JSON at position 12
at JSON.parse (<anonymous>)
at <anonymous>:1:6
(anonymous) @ VM834:1
content = content.replace(/\\/g, '\\\\')
"{"path":"R:\\30-09-18\\LTP\\p"}"
JSON.parse(content)
//result is {path: "R:\30-09-18\LTP\p"}