SyntaxError: Unexpected token / in JSON at position 0
SyntaxError: Unexpected token / in JSON at position 0
您好,在将此标记为重复之前请注意,我确实尝试了 this and 解决方案,但它们都不适合我。我在 Node.JS 中启动一个子进程,进程启动一个 python 文件,最后的 python 脚本将字典列表转储到 JSON 中,这是有效的,因为我解析了 json 在本网站。主要问题是收集的 json 未在 Node.JS 中解析,它显示以下错误
SyntaxError: Unexpected token / in JSON at position 0
代码片段如下
let output = '';
model = spawn("python3", ["./scanners/python/scan.py", code]);
model.stdout.on("data", function (data)
{
output += data.toString();
console.log(data.toString());
});
model.stderr.on("data", function (data)
{
output += data.toString();
console.log(data.toString());
});
model.on("close", function (exitCode)
{
let result = JSON.parse(output.trim()); //exception is here
}
我尝试了以下方法来摆脱它,但没有成功。
- 修剪了输出,例如output.trim()
- 删除了取自 here
的不可见控制字符代码
- 删除了取自
的其他尾随或前导字符代码
- 尝试使用子字符串不考虑位置 0 处的第一个字符然后错误更改,例如位置 0
的无效标记 v
求助,很郁闷
基本上我无法成功删除导致错误的不可见控制字符,所以下一个方法来自 here,这个接受的答案没有显示删除,但另一种方法是提取来自垃圾字符串的实际 json 然后解析 JSON 使其变为
let output = '';
model = spawn("python3", ["./scanners/python/scan.py", code]);
model.stdout.on("data", function (data)
{
output += data.toString();
console.log(data.toString());
});
model.stderr.on("data", function (data)
{
output += data.toString();
console.log(data.toString());
});
model.on("close", function (exitCode)
{
output = output.trim().match(/[{].*.[}]/); //extract actual content from garbage e.g. JSON between [] or {}
let result = JSON.parse(output.trim());
}
您好,在将此标记为重复之前请注意,我确实尝试了 this and
SyntaxError: Unexpected token / in JSON at position 0
代码片段如下
let output = '';
model = spawn("python3", ["./scanners/python/scan.py", code]);
model.stdout.on("data", function (data)
{
output += data.toString();
console.log(data.toString());
});
model.stderr.on("data", function (data)
{
output += data.toString();
console.log(data.toString());
});
model.on("close", function (exitCode)
{
let result = JSON.parse(output.trim()); //exception is here
}
我尝试了以下方法来摆脱它,但没有成功。
- 修剪了输出,例如output.trim()
- 删除了取自 here 的不可见控制字符代码
- 删除了取自
- 尝试使用子字符串不考虑位置 0 处的第一个字符然后错误更改,例如位置 0 的无效标记 v
求助,很郁闷
基本上我无法成功删除导致错误的不可见控制字符,所以下一个方法来自 here,这个接受的答案没有显示删除,但另一种方法是提取来自垃圾字符串的实际 json 然后解析 JSON 使其变为
let output = '';
model = spawn("python3", ["./scanners/python/scan.py", code]);
model.stdout.on("data", function (data)
{
output += data.toString();
console.log(data.toString());
});
model.stderr.on("data", function (data)
{
output += data.toString();
console.log(data.toString());
});
model.on("close", function (exitCode)
{
output = output.trim().match(/[{].*.[}]/); //extract actual content from garbage e.g. JSON between [] or {}
let result = JSON.parse(output.trim());
}