【问题标题】:Eval error, Blackberry 5.2, Javascript评估错误,黑莓 5.2,Javascript
【发布时间】:2012-06-26 22:16:41
【问题描述】:

我正在开发一个 Blackberry 5.2 浏览器应用程序。我有一些返回一些 JSON 的 JavaScript。我知道较旧的黑莓手机不支持 JSON 解析,但能够使用 eval 完成工作。

但是在运行 5.2 的 Blackberry Curve 上,我的 eval 语句会引发错误。错误是

SyntaxError: eval() 中的错误:期望 ';'找到':' ...

它试图解析的字符串是正确且干净的。

javascript 看起来像这样......

            request.open("POST", url, false);

            request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            request.setRequestHeader("Accept", "text/json");

            request.send(params);
            return eval(request.responseText);

它试图评估的响应看起来像这样......

{
    "Authenticated": true,
    "StatusCode": "Success",
    "InternalErrorId": null,
    "AuthenticationToken": "PxjcYnjBLN21ZMcWrEzKi9LC3vdXehMVSegEbVz61aca52113",
    "AuthenticationTokenExpiry": "/Date(1340734497405)/",
    "SessionTimeoutMinutes": 240
}

有谁知道这里可能发生了什么以及如何解决它?

【问题讨论】:

  • 我们不是读心术的人。请提供SSCCE 或其他传达确切输入的方式和 JavaScript 以重现问题。
  • 抱歉,现在添加了更多细节。
  • 也许您可以包含json2.js 而不是使用eval

标签: javascript html blackberry


【解决方案1】:

使用eval解析JSON时,需要将JSON包裹在()中。

return eval('('+request.responseText+')');

【讨论】:

  • 不错的收获。当我在浏览器控制台中摆弄时,我经常忘记这一点。 var x = {} (dangit) var x = ({})
  • @MattBall:愚蠢的块状语句。
  • 啊,很简单,但就是这样!谢谢。
猜你喜欢
  • 1970-01-01
  • 2015-05-11
  • 2012-02-27
  • 2012-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多