Why is it that whenever I do :-

JSON.parse('"something"') 

it just parses fine but when I do:-

var m = "something"; JSON.parse(m); 

it gives me an error saying:-

Unexpected token s 
3

5 Answers

You're asking it to parse the JSON text something (not "something"). That's invalid JSON, strings must be in double quotes.

If you want an equivalent to your first example:

var s = '"something"'; var result = JSON.parse(s); 
3

What you are passing to JSON.parse method must be a valid JSON after removing the wrapping quotes for string.

so something is not a valid JSON but "something" is.

A valid JSON is -

JSON = null /* boolean literal */ or true or false /* A JavaScript Number Leading zeroes are prohibited; a decimal point must be followed by at least one digit.*/ or JSONNumber /* Only a limited sets of characters may be escaped; certain control characters are prohibited; the Unicode line separator (U+2028) and paragraph separator (U+2029) characters are permitted; strings must be double-quoted.*/ or JSONString /* Property names must be double-quoted strings; trailing commas are forbidden. */ or JSONObject or JSONArray 

Examples -

JSON.parse('{}'); // {} JSON.parse('true'); // true JSON.parse('"foo"'); // "foo" JSON.parse('[1, 5, "false"]'); // [1, 5, "false"] JSON.parse('null'); // null JSON.parse("'foo'"); // error since string should be wrapped by double quotes 

You may want to look JSON.

0

Variables (something) are not valid JSON, verify using

0

valid json string must have double quote.

JSON.parse({"u1":1000,"u2":1100}) // will be ok 

no quote cause error

JSON.parse({u1:1000,u2:1100}) // error Uncaught SyntaxError: Unexpected token u in JSON at position 2 

single quote cause error

JSON.parse({'u1':1000,'u2':1100}) // error Uncaught SyntaxError: Unexpected token u in JSON at position 2 

You must valid json string at

Because JSON has a string data type (which is practically anything between " and "). It does not have a data type that matches something

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy