使用jquery将JSON数组从jsp传递到javascript

时间:2012-06-29 21:33:46

标签: javascript jquery json jsp

我现在已经搜索了两天,并尝试了所有可能的事情。 我使用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);
<%= json %>

这是我的js代码:

$.getJSON("testgoogle.jsp", function(json) {
    $.each (json, function(k, v) {
        alert(v.val1);
    });
});

非常简单吧?我可以将其更改为$ .get并查看字符串。如果我发出警报(k),它只会警告0次。我怀疑我用json字符串传递了一些空白区域。当我提醒从jsp返回的任何内容时,警报框中显示的内容低于警报(“hi”)。你知道在哪里!在警告框中,“hi”是如何正确的! IMG。好吧,当我有&lt;%=“hi”%&gt;从jsp发送它是在!我移动了&lt;%=“hi”%&gt;一直到顶部所以我的jsp看起来像:

<%@page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%= "hi" %>

正如你所看到的,我正在抓住稻草。这在!的底部返回“hi”。我的jsp中的线越多,我的警报框就会向下移动“hi”。还有,奇怪的是。如果我把它放在我的jsp顶部:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

这实际上会在我的警报中打印出来。

如果您需要更多信息,请与我们联系。

解决方案: 当密钥为var1时,我试图调用val1。哇!我将永远不会得到所有这些时间;)正确的代码与上面的相同,除了val1应该是var1。此外,我尝试使用eval(json),它仍然适用于FYI。感谢您试图帮助所有人!

3 个答案:

答案 0 :(得分:1)

$.getJSON()

  

成功回调传递返回的数据,通常是a   由JSON结构定义并解析的JavaScript对象或数组   使用$ .parseJSON()方法。它也传递了文本状态   回应。

您不必自己“解析”字符串,因为它已经被jQuery解析

$.getJSON("testgoogle.jsp", function(json) {
    $.each (json, function(k, v) {
        alert(v.val1);
    });
});

答案 1 :(得分:0)

在$ .getJSON中json中的function(json) {已经是一个JavaScript对象,所以你不要评估它

答案 2 :(得分:0)

试试这个:

$.getJSON("testgoogle.jsp", function(json) {
$.each (json[0], function(k, v) {
    alert(v);
    });
});