JSON.parse:Javascript中出现意外的字符错误

时间:2013-11-25 12:01:57

标签: java javascript json jsp

我正在尝试解析一个JSON,我将从Java会话变量中获取它。我正在使用这样的代码:

var foo1 = <%= session.getAttribute("json").toString() %>
var foo = JSON.parse(foo1.toString());
alert(foo.toString());

(是的,我知道scriptlet很糟糕,但这只是暂时的)。我使用foo1获得的值是有效的JSON(我使用在线验证器进行了验证)。但是,当我尝试提醒foo1时,我将其视为[object,Object],但如果我尝试解析,则会出现JSON.parse:Unexcpected character错误。

我已根据需要上传了JSON here。由于它有点大的json字符串,我不能在这里发帖。

有人可以帮我知道我在做什么错吗?总结我试图从Java会话变量中获取JSON字符串并尝试在Javascript中解析它。任何有关如何做到这一点的提示都表示赞赏。

2 个答案:

答案 0 :(得分:1)

尝试这样的事情

var foo = <%= session.getAttribute("json").toString() %>
alert(foo.toString());

原因:您已经获得了json对象,因此无需解析。

var obj = {id:1};    // No need to parse
var obj = "{id:1}"; // Need to parse

答案 1 :(得分:0)

在您的情况下,foo1不是字符串,但已经是JSON对象!那是因为你没有给它分配一个字符串文字,而是一个javascript-object-structure。

假设"json"属性的字符串值为{ name: "Jack", age: 25 }。现在,在完成JSP处理之后,客户端会收到以下内容:

var foo1 = { name: "Jack", age: 25 }

您可能期待的是:

var foo1 = "{ name: \"Jack\", age: 25 }"
相关问题