使用jquery将JSON数组从jsp传递到javascript
我现在已经搜索了两天,并尝试了所有可能的事情。 我使用GSON创建一个JSON数组。 当我通过jquery将其发送到Javascript之前打印出我的json字符串时,它看起来像这样:
[{"var1":"hi","var2":"this","var3":"is"}]
在我看来很好。 我尝试过以下两种方式向js发送:
String json = gson.toJson(googData, listType); response.setContentType("application/json"); response.setCharacterEncoding("UTF-8"); response.getWriter().write(json);
和
String json = gson.toJson(googData, listType);
这是我的js代码:
$.getJSON("testgoogle.jsp", function(json) { $.each (json, function(k, v) { alert(v.val1); }); });
很简单吧? 我可以将其更改为$ .get并查看字符串。 如果我发出警报(k),它只会警告0次。 我怀疑我用json字符串传递了一些空白区域。 当我提醒从jsp返回的任何内容时,警报框中显示的内容低于警报(“hi”)。 你知道在哪里! 是在警报框中,“hi”是如何正确的! IMG。 好吧,当我从jsp发送时,它低于! 我一直把移到了顶部,所以我的jsp看起来像:
正如你所看到的,我正在抓住稻草。 这在!的底部返回“hi”。 我的jsp中的线越多,我就会在警报框中向下移动“hi”。 还有,奇怪的是。 如果我把它放在我的jsp的顶部:
这实际上会在我的警报中打印出来。
如果您需要更多信息,请告诉我。
解决方案:当密钥为var1时,我试图调用val1。 哇! 我将永远不会得到所有这些时间;)正确的代码与上面的相同,除了val1应该是var1。 此外,我尝试使用eval(json),它仍然适用于FYI。 感谢您试图帮助大家!
$ .getJSON()
成功回调传递返回的数据,该数据通常是由JSON结构定义的JavaScript对象或数组,并使用$ .parseJSON()方法进行解析。 它还传递了响应的文本状态。
您不必自己“解析”字符串,因为它已经被jQuery解析了
$.getJSON("testgoogle.jsp", function(json) { $.each (json, function(k, v) { alert(v.val1); }); });
在$ .getJSON中, function(json) {
的json
function(json) {
是一个JavaScript对象,所以你不要评估它
试试这个 :
$.getJSON("testgoogle.jsp", function(json) { $.each (json[0], function(k, v) { alert(v); }); });