JavaScript JSON解析错误:JSON中位置1处出现意外令牌'

时间:2018-10-07 10:44:15

标签: javascript json

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

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

JSON.parse(timeSlots);

引发以下错误:

  

VM163:1未捕获的SyntaxError:JSON中位置1处的意外令牌'

4 个答案:

答案 0 :(得分:4)

在JSON中,名称/值对由一个字段名(用引号引起来),一个冒号,一个值组成。

将单引号替换为双引号,并在转义(\)字符前加上前缀:

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

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

OR::您可以简单地用单引号将字符串包装起来,而无需转义双引号:

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

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

答案 1 :(得分:1)

尝试其中的任何一种

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

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

答案 2 :(得分:1)

最后,找到解决方法

var timeSlots = "['11AM-12PM', '1PM-2PM']";
timeSlots.replace(/'/g, '"');
console.log(JSON.parse(timeSlots));

答案 3 :(得分:-1)

JSON.parse需要双引号,但是如果要修改输入内容是很挑剔的,则可以使用以下技巧:

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

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