JavaScript JSON解析错误:在JSON位置1处意外的标记'

7

我无法将以下字符串解析为JSON数组:

var timeSlots = "['11AM-12PM', '1PM-2PM']";

JSON.parse(timeSlots);

抛出以下错误:

VM163:1 抛出未捕获的语法错误:JSON 中位置为 1 的地方有意外的 ' 标记


4
在JSON中,所有字符串都要使用双引号",单引号是无效的。 - Thomas
JSON.parse('["11AM-12PM", "1PM-2PM"]') - Amir Popovich
var timeSlots = '"[\'11AM-12PM\', \'1PM-2PM\']"'; - anjanesh
3个回答

4
在JSON中,一个名称/值对由一个字段名称(用双引号括起来),后跟一个冒号,然后是一个值组成。
用双引号替换单引号,并在转义(\)字符前加上前缀:

var timeSlots = "[\"11AM-12PM\", \"1PM-2PM\"]";

console.log(JSON.parse(timeSlots));

OR: You can simply wrap the string with single quotes which will not require to escape the double quotes:

var timeSlots = '["11AM-12PM", "1PM-2PM"]';

console.log(JSON.parse(timeSlots));


3
最终,找到了解决方案。
var timeSlots = "['11AM-12PM', '1PM-2PM']";
timeSlots.replace(/'/g, '"');
console.log(JSON.parse(timeSlots));

1
尝试其中任何一个。
var timeSlots = "[\"11AM-12PM\", \"1PM-2PM\"]";

or

var timeSlots = '["11AM-12PM", "1PM-2PM"]';

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接