jquery - 我无法使用 getJson 读取 JSON

标签 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,而且我可能会错过基础知识,因为我在教程中运行得非常快。

最佳答案

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

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

看看这个 http://jsfiddle.net/xV2vx/

关于jquery - 我无法使用 getJson 读取 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7723405/

相关文章:

Jquery getJSON 无法跨站点工作

json - 跟踪 HttpWebRequest 和 HttpWebResponse 的进度

jquery - 如何使用原生javascript编写jquery $.getJSON函数?

javascript - 为什么我的 jQuery 只切换 HTML 中的第一个箭头?

php - 在我的网站上添加评论系统

javascript - 使用jquery控制附加和重复元素?

javascript - 拒绝从 '*' 执行脚本,因为它的 MIME 类型 ('application/json' ) 不可执行,并且严格的 MIME 类型 che

javascript - 将 json 加载到变量中的一个衬垫

c# - JSON 序列化器 - 当前端缺少设置为 false 的 bool 值时

javascript - 使用复选框、切换相关下拉列表和 DIV 可见性启用下拉选择