【问题标题】:Getting 'Uncaught SyntaxError: Unexpected token' trying to parse JSON获取“未捕获的语法错误:意外的令牌”尝试解析 JSON
【发布时间】:2014-01-23 04:57:38
【问题描述】:

我在尝试解析 JSON 字符串时收到“未捕获的语法错误”,但我不知道为什么。

貌似message是个字符串,貌似是个通病,json貌似有效。给出了我的代码的 sn-p。它在var obj = ... 行上失败。

this.send = function (message) {
    console.log(message);
    console.log(message.toString());
    console.log('{"ReadyToGo":1}');
    console.log(typeof message);
    var obj = $.parseJSON(message);
}

在控制台上,我在错误之前得到了这个。:

{"ReadyToGo":1}
{"ReadyToGo":1}
{"ReadyToGo":1}
string

有什么想法吗?

编辑:添加了console.log(typeof message),产生'string'

【问题讨论】:

  • console.log(typeof message);
  • 传递时message的值是多少?
  • @Hrishi:他这样做是为了与上面的其他两个console.log()s 进行比较。
  • 既然你从typeof message 得到"string",那么我唯一能猜到的就是有一些无效的不可见字符。如果你这样做console.log(message === '{"ReadyToGo":1}');会发生什么?
  • stackoverflow.com/questions/18130081/… 表明您的错误消息不完整——jQuery 在检测时提供了实际的错误字符。完整的错误是什么?

标签: javascript json


【解决方案1】:

好的,我把这个整理好了。一个空字符 ( '\0' ) 被附加到长调用链中某处的字符串中,这在调试器中是不可见的。感谢cookie monster 对此的提醒。

删除空字符后一切正常。

【讨论】:

    猜你喜欢
    • 2016-06-11
    • 1970-01-01
    • 2012-10-12
    • 2011-12-01
    • 1970-01-01
    • 2015-12-01
    • 1970-01-01
    相关资源
    最近更新 更多