我无法用getJson读取JSON

时间:2011-10-11 08:43:39

标签: jquery json getjson servlet-3.0

我知道我的问题已被多次回答,但我仍然无法弄清楚如何为我做一个工作。 我正在尝试2天来通过阅读论坛解决我的问题,但我可能在基础知识上有些错误,我找不到,我需要你的帮助。

我有一个创建JSON的servlet(至少我是这么认为),这是代码

        JSONObject json = new JSONObject();
    for(int i=0; i<20; i++){
        JSONObject jsonItem = new JSONObject();
        jsonItem.put("position", positions[i]);
        json.accumulate("group", jsonItem);
    }

    String output = json.toString();

    response.setContentType("application/json");    
    PrintWriter out = response.getWriter();  
    out.print(output);
    out.flush();

如果我运行servlet,我会得到以下内容:

{
  "group": [
    {
      "position": 235
    },
    {
      "position": 61
    },
    {
      "position": 248
    },
    {
      "position": 206
    },
    {
      "position": 26
    },
    {
      "position": 329
    },
    {
      "position": 176
    },
    {
      "position": 180
    },
    {
      "position": 218
    },
    {
      "position": 83
    },
    {
      "position": 177
    },
    {
      "position": 142
    },
    {
      "position": 17
    },
    {
      "position": 249
    },
    {
      "position": 310
    },
    {
      "position": 369
    },
    {
      "position": 251
    },
    {
      "position": 256
    },
    {
      "position": 337
    },
    {
      "position": 63
    }
  ]
}

我的jQuery如下:

$(document).ready(function(){
  $("#clickMe2").click(function(){
      alert("something2");
    $.getJSON("/RandomNumGen",function(result){
        alert("something3");
      $.each(result, function(i, field){
        $("#myTarget").append(field + " ");
      });
    });
  });
});

也许这不是正确的阅读方式,但它永远不会进入第二个警报“something3”。所以我认为它永远不会读取JSON。 我尝试了很多方法来阅读它,但似乎问题是永远不会读取JSON。

我在tomcat 7.0.22上运行servlet并且我有@WebServlet("/RandomNumGen")我认为这意味着我不需要web xml但是没有运行所以我决定创建一个web。 xml也是。 奇怪的是,当我尝试使用MIME“text / html”返回一些内容并使用普通的get $.get获取它时,它确实得到了它并在浏览器上打印[Object object]

显然我之前没有使用JSON,因为我在教程中运行得非常快,所以我可能会错过基础知识。

1 个答案:

答案 0 :(得分:2)

你的jquery错了。您必须更改$.each。试试这个

$.each(result.group, function(i, field){
     $("#myTarget").append(field.position + " ");
});

检查一下 http://jsfiddle.net/xV2vx/