Afsal KK
Afsal KK

Reputation: 661

Javascript JSON parsing error: Unexpected token ' in JSON at position 1

I'm not able to parse below string as JSON array:

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

JSON.parse(timeSlots);

Throws the following error:

VM163:1 Uncaught SyntaxError: Unexpected token ' in JSON at position 1

Upvotes: 7

Views: 3852

Answers (3)

Afsal KK
Afsal KK

Reputation: 661

Finally, Got the solution

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

Upvotes: 3

Mamun
Mamun

Reputation: 68933

In JSON, A name/value pair consists of a field name (in double quotes), followed by a colon, followed by a value.

Replace the single quotes with double quotes prefixing the escape (\) character:

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));

Upvotes: 4

MyTwoCents
MyTwoCents

Reputation: 7624

Try any of these

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

or

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

Upvotes: 1

Related Questions