我现在已经搜索了两天,并尝试了所有可能的事情。 我使用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。感谢您试图帮助所有人!
答案 0 :(得分:1)
成功回调传递返回的数据,通常是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);
});
});