我只是在node.js中使用JSON.parse
来获取十六进制id的数组
'["5682940386289d593130ed98","568293fe86289d593130ed97","568293f486289d593130ed96"]'
收到错误,
SyntaxError:意外的标记'。
即使我尝试将数组传递为:
'[5682940386289d593130ed98,568293fe86289d593130ed97,568293f486289d593130ed96]'
它会抛出错误,
SyntaxError:意外的令牌d。
理解奇怪的行为。有人建议我在哪里可以阅读相同的内容。
答案 0 :(得分:2)
你的字符串以'出于某种原因开始和结束,实际上看起来像这样:
// run this snippet
// to see the error
var str = '\'["5682940386289d593130ed98","568293fe86289d593130ed97","568293f486289d593130ed96"]\'';
try {
JSON.parse(str);
} catch (err) {
console.log(err);
snippet.log(err.stack);
}
<script src="https://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
我不知道您是如何构建/获取此字符串的,但您可以使用以下代码删除结尾并从中开始:
var str = '\'["5682940386289d593130ed98","568293fe86289d593130ed97","568293f486289d593130ed96"]\'';
str = str.replace(/^'|'$/g, ''); // remove ' before parsing
var obj = JSON.parse(str);
snippet.log(JSON.stringify(obj));
<script src="https://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>