编辑:解决了......我需要在这里使用JSON.stringify()。卫生署。
我正在尝试JSON.parse()一个响应令牌,并在Internet Explorer中不断收到“SyntaxError:Invalid character”。 (由于CORS,Chrome不确定此问题是否存在,但这是一个不同的问题。)
console.log(response.token.isAdmin)
// false
console.log(JSON.parse(response.token.isAdmin))
// false
console.log(response.token.tokenValue)
// 36151b9e-ad0d-49de-a14b-5461489c7065
console.log(JSON.parse(response.token.tokenValue.toString()))
// SyntaxError: Invalid character
我尝试解析的任何字符串都会出现同样的错误。如果源不是字符串(布尔值,整数),则解析工作正常。
为什么这不起作用,如何将我的对象放入字符串?
答案 0 :(得分:5)
36151b9e-ad0d-49de-a14b-5461489c7065
是无效的JSON。
JSON.parse('36151b9e-ad0d-49de-a14b-5461489c7065'); // SyntaxError
也许你的意思是"36151b9e-ad0d-49de-a14b-5461489c7065"
,这是有效的JSON。
JSON.parse('"36151b9e-ad0d-49de-a14b-5461489c7065"');
// 36151b9e-ad0d-49de-a14b-5461489c7065
或许你想将字符串化为JSON而不是解析
JSON.stringify('36151b9e-ad0d-49de-a14b-5461489c7065');
// "36151b9e-ad0d-49de-a14b-5461489c7065"
答案 1 :(得分:1)
您似乎正在尝试解析无效JSON的字符串。
您可以解析这样的字符串:
/dev/urandom
但你无法解析没有格式化为JSON的东西,比如:
random_int
如果您希望将JSON对象解析为字符串,则可以使用var parseMe = '{ "tokenValue": "36151b9e-ad0d-49de-a14b-5461489c7065" }';
var parsed = JSON.parse(parseMe);
// parsed is now equal to Object {tokenValue: "36151b9e-ad0d-49de-a14b-5461489c7065"}
,如下所示:
var parseMe = '36151b9e-ad0d-49de-a14b-5461489c7065';
var parsed = JSON.parse(parseMe);
// Uncaught SyntaxError: Unexpected token b in JSON at position 5