为什么 JSON.parse 给出无效的字符
Why does JSON.parse give invalid character
编辑:已解决...我需要在这里使用 JSON.stringify()。嘟嘟。
我正在尝试JSON.parse()一个响应令牌,并在Internet Explorer中不断收到"语法错误:无效字符"。(不确定由于 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
我尝试解析的任何字符串都会发生相同的错误。如果源不是字符串(布尔值、整数),则解析工作正常。
为什么这不起作用,如何将我的对象放入字符串中?
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"
您似乎
正在尝试解析无效的 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"}
但是您不能解析未格式化为 JSON 的内容,如下所示:
var parseMe = '36151b9e-ad0d-49de-a14b-5461489c7065';
var parsed = JSON.parse(parseMe);
// Uncaught SyntaxError: Unexpected token b in JSON at position 5
相反,如果您想将 JSON 对象解析为字符串,您可以使用如下所示JSON.stringify()
:
var stringifyMe = { tokenValue: '36151b9e-ad0d-49de-a14b-5461489c7065' };
var stringified = JSON.stringify(stringifyMe);
// stringified is now equal to the string {"tokenValue":"36151b9e-ad0d-49de-a14b-5461489c7065"}
相关文章:
- 如何使用JavaScript粘贴原始二进制文件而不出现“无效字符”错误
- 使用JSON.parse时出现无效字符javascript错误
- 无效字符替换时出错
- 解析 JSON 时出现无效字符错误
- JSON.parse中存在无效字符
- JavaScript运行时错误:无效字符
- JSON无效字符错误
- 将节点.js应用程序从 JavaScript 转换为咖啡脚本时出现无效字符和模块
- 火狐抱怨有效的JSON..不可见的无效字符
- 替换 javascript 中的无效字符
- 无效字符破坏了脚本
- SCRIPT1014:无效字符
- 从电子邮件中删除无效字符
- 如何从JSON$http.get()请求中删除无效字符
- Jquery或JS:如何检查字符串中的无效字符
- 使用javascript验证包含无效字符的电子邮件正则表达式
- 使用atob()方法时出现无效字符错误
- JavaScript运行时错误:无效字符(JSON.parse)
- 来自IE9的AJAX响应包含无效字符
- 限制键入无效字符-jquery validate