使用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); }); });