我正在尝试解析一个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中解析它。任何有关如何做到这一点的提示都表示赞赏。
答案 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 }"